Michele Bini avatar Michele Bini committed de2cc7f

Fix option parsing bug, improved error reporting and suppressed warning when perl expression returns undef

Comments (0)

Files changed (1)

 
 # PeML: Perl Macro Language
 
-$VERSION = "0.1.1";
+$VERSION = "0.1.2";
 
 use strict;
 
 
 while (@ARGV) {
   local $_ = $ARGV[0];
-  if (/--/) {
-    shift @ARGV; last;
-  } elsif (/-open/) {
-    shift @ARGV; $peml_open = shift @ARGV;
-  } elsif (/-close/) {
-    shift @ARGV; $peml_close = shift @ARGV;
-  } elsif (/-output/) {
-    shift @ARGV; open(STDOUT, ">", shift(@ARGV));
+  if (/^-/) {
+    if (/^--$/) {
+      shift @ARGV; last;
+    } elsif (/^-open$/) {
+      shift @ARGV; $peml_open = shift @ARGV;
+    } elsif (/^-close$/) {
+      shift @ARGV; $peml_close = shift @ARGV;
+    } elsif (/^-output$/) {
+      shift @ARGV; open(STDOUT, ">", shift(@ARGV));
+    } else {
+      die "Unrecognized option: $_";
+    }
   }
 }
 
   CLOSELOOP:
     while(1) {
       if (/$peml_close/) {
-	print eval("$`");
+	my $r = eval("$`");
+	die "$@" unless $@;
+	print $r if defined $r;
 	$_ = "$'";
       } else {
 	my $n = <>;
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.