Silence ill-behaved or failing Module::Build tests on VMS.
[p5sagit/p5-mst-13.2.git] / lib / Module / Build / YAML.pm
index 1b0605f..4922bd5 100644 (file)
@@ -1,6 +1,9 @@
 package Module::Build::YAML;
 
 use strict;
+use vars qw($VERSION);
+$VERSION = '0.2808_01';
+$VERSION = eval $VERSION;
 
 use vars qw($VERSION @EXPORT @EXPORT_OK);
 $VERSION = "0.50";
@@ -104,29 +107,22 @@ sub _yaml_chunk {
 sub _yaml_value {
   my ($value) = @_;
   # undefs become ~
-  if (! defined $value) {
-    return("~");
-  }
+  return '~' if not defined $value;
+
   # empty strings will become empty strings
-  elsif (! defined $value || $value eq "") {
-    return('""');
-  }
-  # quote and escape strings with special values
-  elsif ($value =~ /["'`~\n!\@\#^\&\*\(\)\{\}\[\]\|<>\?]/) {
-    if ($value !~ /['`~\n!\#^\&\*\(\)\{\}\[\]\|\?]/) {  # nothing but " or @ or < or > (email addresses)
-      return("'" . $value . "'");
-    }
-    else {
-      $value =~ s/\n/\\n/g;    # handle embedded newlines
-      $value =~ s/"/\\"/g;     # handle embedded quotes
-      return('"' . $value . '"');
-    }
-  }
+  return '""' if $value eq '';
+
   # allow simple scalars (without embedded quote chars) to be unquoted
   # (includes $%_+=-\;:,./)
-  else {
-    return($value);
-  }
+  return $value if $value !~ /["'`~\n!\@\#^\&\*\(\)\{\}\[\]\|<>\?]/;
+
+  # quote and escape strings with special values
+  return "'$value'"
+    if $value !~ /['`~\n!\#^\&\*\(\)\{\}\[\]\|\?]/;  # nothing but " or @ or < or > (email addresses)
+
+  $value =~ s/\n/\\n/g;    # handle embedded newlines
+  $value =~ s/"/\\"/g;     # handle embedded quotes
+  return qq{"$value"};
 }
 
 1;