sub Calc { local($_) = @_; local @v = (); eval { expr(); /\G\s*\z/gcx or err( 'incomplete' ); } or err( $@ ); return @v; } while( <> ) { s/[\r\n]*//g; ## "chomp" print $_," = ", Calc($_), "\n"; }