11 my ($what, $xmin, $ymin, $xmax, $ymax) = /^(.*) (\d+),(\d+) through (\d+),(\d+)/;
12 ($xmax, $xmin) = ($xmin, $xmax) if $xmin > $xmax;
13 ($ymax, $ymin) = ($ymin, $ymax) if $ymin > $ymax;
14 for my $x ($xmin .. $xmax) {
15 for my $y ($ymin .. $ymax) {
16 if ($what eq 'toggle') {
18 } elsif ($what eq 'turn on') {
20 } elsif ($what eq 'turn off') {
21 $lights{$x,$y}-- if $lights{$x,$y};
26 use List::Util qw(sum);
27 say sum values %lights;