------- Sample Text ------- ! interface Ethernet blah... blah... ! interface Gigabit blah... blah... ! interface Ethernet blah... ! ------- Sample Text ------- #### foreach $line (@cfg) { if ($line =~ m/^interface (\.*)/) { if ($1 eq "Ethernet") { &parse_ethernet($1); Keep parsing until $line matches "!" } if ($1 eq "Gigabit") { &parse_gigabit($1); Keep parsing until $line matches "!" } } if ($line =~ m/^system (\.*)/) { blah... } }