Skip to content

Instantly share code, notes, and snippets.

@dmn001
Created April 11, 2012 23:42
Show Gist options
  • Save dmn001/2363506 to your computer and use it in GitHub Desktop.
Save dmn001/2363506 to your computer and use it in GitHub Desktop.
my $file = $ARGV[0];
open FILE, "<", $file or die;
while (<FILE>){
chomp;
prefix_expression($_);
}
close FILE;
sub prefix_expression{
my $str = $_[0];
my ($symbols,$numbers) = $str =~ /^(.*?\D+)(.*)$/;
my @symbols = split /\s+/, $symbols;
my @numbers = split /\s+/, $numbers;
my $c = 0;
foreach(reverse @symbols){
if ($_ eq '*'){
$numbers[$c+1] = $numbers[$c] * $numbers[$c+1];
}
elsif ($_ eq '+'){
$numbers[$c+1] = $numbers[$c] + $numbers[$c+1];
}
elsif ($_ eq '/'){
$numbers[$c+1] = $numbers[$c] / $numbers[$c+1];
}
$c++;
}
#print "answer is $numbers[$c].\n";
print $numbers[$c]."\n";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment