6 my @m = map { chomp; [ split // ] } <>;
18 for my $y (0 .. $dim) {
19 for my $x (0 .. $dim) {
21 for my $dy (-1 .. 1) {
22 next if $y + $dy < 0 || $y + $dy > $dim;
23 for my $dx (-1 .. 1) {
24 next if $x + $dx < 0 || $x + $dx > $dim;
25 next if $dx == 0 && $dy == 0;
26 $sum++ if $m[$y+$dy][$x+$dx] eq '#';
29 if (($y == 0 || $y == $dim) && ($x == 0 || $x == $dim)) {
31 } elsif ($m[$y][$x] eq '#') {
32 $nm[$y][$x] = $sum == 2 || $sum == 3 ? '#' : '.';
34 $nm[$y][$x] = $sum == 3 ? '#' : '.';
41 for my $y (0 .. $dim) {
42 for my $x (0 .. $dim) {
43 $sum++ if $m[$y][$x] eq '#';