in reply to Regular expression match in file

use strict; use warnings; use Data::Dumper; my %levels = (); my $level = 0; while (<DATA>) { chomp; if (/^level (\d+)/) { $level = $1; } elsif (/^section(\d+)/) { push @{$levels{$level}}, $_; } } print Dumper (\%levels); __DATA__ level 1 section1 section2 level 2 section3 section4 level 2
Output:
$VAR1 = { '1' => [ 'section1', 'section2' ], '2' => [ 'section3', 'section4' ] };
holli, /regexed monk/