#!/usr/bin/env perl use strict; use warnings; my $sum = 0; my $enable = 1; ## Part 1 #while (<>) { # while (/mul\((\d+),(\d+)\)/g) { # $sum += $1 * $2; # } #} #print $sum; ## Part 2 while (<>) { while (/do\(\)|don't\(\)|mul\((\d+),(\d+)\)/g) { if ($& eq 'do()') { $enable = 1; next; } elsif ($& eq "don't()") { $enable = 0; next; } $sum += $1 * $2 if ($enable); } } print $sum;