#!/usr/bin/perl -l use Getopt::Std; getopts( "fq", \%opt ); $line="ERROR 02052008-14:45 EDW08B50 ...ocal/log2000/data/incoming/bk/xp/bk005466.edi B: 1195043779 , RFT: AD0010043543 ERROR 02052008-14:45 EDW08B50 Closing date before today:2008-04-23"; $named_regex = '(?AD[^A]|NA|VN3)\S*'; $named_regex.= '$' if defined($opt{f}); $named_regex=qr/$named_regex/ if defined($opt{q}); $line=~/$named_regex/oms; print join("=>",%+); #### # ./test.pl DCSE=>AD0 # ./test.pl -q DCSE=>AD0 # ./test.pl -f DCSE=>AD0 # ./test.pl -fq #