my $re = qr/ ( \d+ ) # $1 id \s+ \d{4}-\d{2}-\d{2}\s ( \d{2} ) :\d{2}:\d{2} # $2 hour \s+ (\S+) # $3 val /x; while(<>){ if( /$re/ ){ my( $id, $hour, $value ) = ( $1 , $2, $3 ); ...