]> www.fi.muni.cz Git - aoc2020.git/blobdiff - 36.pl
Task 9 Perl Golf-style
[aoc2020.git] / 36.pl
diff --git a/36.pl b/36.pl
index 68eb4f95dc33626fb93fd8d5918d7fc797f22442..4e254895344b7fda894e51e0612013e493f55905 100755 (executable)
--- a/36.pl
+++ b/36.pl
@@ -2,15 +2,10 @@
 
 use strict;
 
-my $sum = 0;
-while (<>) {
-       chomp;
-       1 while
-               s/\((\d+)\)/$1/ ||
-               s/(\([^\(\)]*?)(\d+)\s*\+\s*(\d+)([^\(\)]*\))/$1.($2+$3).$4/e ||
-               s/(\([^\(\)]*?)(\d+)\s*\*\s*(\d+)([^\(\)]*\))/$1.($2*$3).$4/e ||
-               s/(\d+)\s*([\+])\s*(\d+)/"$1$2$3"/ee ||
-               s/(\d+)\s*([\*])\s*(\d+)/"$1$2$3"/ee;
-       $sum += $_;
-}
-print "sum=$sum\n";
+$_ = '(('.join(')+(', <>).'))';
+s/\s//g;
+1 while
+       s/\((\d+)\)/$1/ ||
+       s/(\([^\(\)]*?)(\d+)\+(\d+)([^\(\)]*\))/$1.($2+$3).$4/e ||
+       s/(\([^\(\)]*?)(\d+)\*(\d+)([^\(\)]*\))/$1.($2*$3).$4/e;
+print "sum=$_\n";