foreach $line (@lines) { ($time, $id, $open) = parse($line); next until $code eq 'open'; $open = $time; until ($code eq 'hold') { $line = shift(@lines); ($time, $id, $code) = parse($line); $total += $time-$open; }