#!/usr/bin/perl -w
use v5.42;
-use List::Util qw(sum);
my @map = map { [ /\S+/g ] } <>;
my $xmax = $#{ $map[0] };
my $ymax = $#map;
-my @sums;
-
+my $sum;
for my $x (0 .. $xmax) {
- $sums[$x] = $map[$ymax][$x] eq '+' ? 0 : 1;
- for my $y (0 .. $ymax-1) {
- if ($map[$ymax][$x] eq '+') {
- $sums[$x] += $map[$y][$x];
- } else {
- $sums[$x] *= $map[$y][$x];
- }
- }
+ eval '$sum+='.join($map[$ymax][$x], map { $map[$_][$x] } 0 .. $ymax-1);
}
-
-say sum @sums;
+say $sum;