aboutsummaryrefslogtreecommitdiff
path: root/challenge-039
diff options
context:
space:
mode:
authorndelucca <nazadelucca@gmail.com>2019-12-18 19:54:59 -0300
committerndelucca <nazadelucca@gmail.com>2019-12-18 19:54:59 -0300
commiteac580dc0ef725df46001a98f9424262c1fa83a0 (patch)
tree6f67ea0163d7fecaa727f375c1bc0c298515f36d /challenge-039
parentf480dc8d04b49877571227f6eddb655f1e83054d (diff)
downloadperlweeklychallenge-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.pl30
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";