]> git.donarmstrong.com Git - biopieces.git/blobdiff - bp_bin/compute
removed debug message
[biopieces.git] / bp_bin / compute
index 0b2e280c30203114b4ec8bc32eaa71181301cfe8..0bcd6ca9fe6bea499411b1dc207bfcbc4a2bd64e 100755 (executable)
@@ -28,6 +28,7 @@
 
 use warnings;
 use strict;
+use Data::Dumper;
 use Maasha::Common;
 use Maasha::Biopieces;
 
@@ -39,7 +40,8 @@ my ( $options, $in, $out, $record, $eval_key, @keys, $eval_val );
 
 $options = Maasha::Biopieces::parse_options(
     [
-        { long => 'eval', short => 'e', type => 'string', mandatory => 'yes', default => undef, allowed => undef, disallowed => undef },
+        { long => 'eval',   short => 'e', type => 'string', mandatory => 'yes', default => undef, allowed => undef, disallowed => undef },
+        { long => 'format', short => 'f', type => 'string', mandatory => 'no',  default => undef, allowed => undef, disallowed => undef },
     ]   
 );
 
@@ -62,8 +64,16 @@ while ( $record = Maasha::Biopieces::get_record( $in ) )
 
         map { $eval_val =~ s/\Q$_\E/$record->{ $_ }/g } @keys;
 
-        $record->{ $eval_key } = eval "$eval_val";
-        Maasha::Common::error( qq(eval "$eval_key = $eval_val" failed -> $@) ) if $@;
+        if ( $eval_val =~ /\+|\-|\*|\// or $eval_val =~ /\s+x\s+/)
+        {
+            $record->{ $eval_key } = eval "$eval_val";
+            Maasha::Common::error( qq(eval "$eval_key = $eval_val" failed -> $@) ) if $@;
+            $record->{ $eval_key } = sprintf( $options->{ 'format' }, $record->{ $eval_key } ) if $options->{ 'format' };
+        }
+        else
+        {
+            $record->{ $eval_key } = $eval_val;
+        }
     }
     else
     {