diff options
| author | ndelucca <nazadelucca@gmail.com> | 2019-12-18 19:54:59 -0300 |
|---|---|---|
| committer | ndelucca <nazadelucca@gmail.com> | 2019-12-18 19:54:59 -0300 |
| commit | eac580dc0ef725df46001a98f9424262c1fa83a0 (patch) | |
| tree | 6f67ea0163d7fecaa727f375c1bc0c298515f36d /challenge-039 | |
| parent | f480dc8d04b49877571227f6eddb655f1e83054d (diff) | |
| download | perlweeklychallenge-club-eac580dc0ef725df46001a98f9424262c1fa83a0.tar.gz perlweeklychallenge-club-eac580dc0ef725df46001a98f9424262c1fa83a0.tar.bz2 perlweeklychallenge-club-eac580dc0ef725df46001a98f9424262c1fa83a0.zip | |
ch-2.pl
Diffstat (limited to 'challenge-039')
| -rw-r--r-- | challenge-039/ndelucca/perl5/ch-2.pl | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/challenge-039/ndelucca/perl5/ch-2.pl b/challenge-039/ndelucca/perl5/ch-2.pl new file mode 100644 index 0000000000..3cf6a4b9a4 --- /dev/null +++ b/challenge-039/ndelucca/perl5/ch-2.pl @@ -0,0 +1,30 @@ +#!/usr/bin/perl + +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-039/ +# Task #2 +# Write a script to demonstrate Reverse Polish notation(RPN). +# Checkout the wiki page for more information about RPN. +# https://en.wikipedia.org/wiki/Reverse_Polish_notation + +use strict; +use warnings; + +die "Input required" unless @ARGV; + +my @stack; +my @rpn = split / /, shift; + +while (@rpn) { + + my $in = shift @rpn; + + if ($in =~ /^\d+$/) { + push @stack, $in; + }else{ + my $num1 = pop @stack; + my $num2 = pop @stack; + push @stack, eval "$num2 $in $num1"; + } +} + +print "Result: ",@stack, "\n"; |
