#! 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__ #### c:\test>junk 'MQSI.3PL846'MSTBKRQ1'MQSI.3PL846' 'MQSI.3PL944'MSTBKRQ1'MQSI.3PL944' 'MQSI.ADM850'MSTBKRQ1'MQSI.ADM850' 'MQSI.ADMAPTR'MSTBKRQ1'MQSI.ADMAPTR'