On Sep 1, [EMAIL PROTECTED] said: > foreach (split /\n/, $EDM_nonactive_tapelist ) { > if (( /\((E\d+)/ ) && ( !m/\*Orig/ ) && ( >m/st_9840_acs_0/ )) {
There is no $1 if all those regexes succeed, because only the FIRST one has something captured, and all the others remove all the $DIGIT variables. If you do: for (split /\n/, $EDM_nonactive_tapelist) { print "$1\n" if !/\*Orig/ and /st_9840_acs_0/ and /\((E\d+)/; } The problem you're having with substr() is that the third argument is the LENGTH of the substring, not its ending point. -- Jeff "japhy" Pinyan % How can we ever be the sold short or RPI Acacia Brother #734 % the cheated, we who for every service http://japhy.perlmonk.org/ % have long ago been overpaid? http://www.perlmonks.org/ % -- Meister Eckhart -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>