#! perl -slw use strict; while( ) { next unless m[^AMQ8409]; ## Skip to the starting condition ## Accumulate lines until we match $_ .= until m[ QUEUE \( ( [^)]+ ) \) \s* TYPE \( [^)]+ \) \s* RQMNAME \( ( [^)]+ ) \) \s* RNAME \( ( [^)]+ ) \) ]xm; ## do something with the captured data print( "'$1'$2'$3'" ) if defined $1; } __DATA__