#!/usr/bin/perl use warnings; use strict; my @arr2 = qw( mcs scr tsz unh ); my @arr1 = qw( spec.srn.1234 sepc.mcs.1234 ); for my $strfile (@arr1) { my @arr3 = split(/[.\n]/, $strfile); if (grep (/^$arr3[1]$/, @arr2)) { print "Entered in IF Loop\n"; } else { print "Entered in ELSE Loop\n"; } } __END__ Output: Entered in ELSE Loop Entered in IF Loop
Are you sure your input contains what you think? Try adding the information to the output:
if (grep (/^$arr3[1]$/, @arr2)) { print "Entered in IF Loop: /^$arr3[1]\$/ found in (@arr2)\n"; } else { print "Entered in ELSE Loop: /^$arr3[1]\$/ not found in (@arr2 +)\n"; }
Also note that I used $arr3[1] instead of @arr3[1]. warnings told me to do so.
In reply to Re: perl grep with regex
by choroba
in thread perl grep with regex
by swissknife
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |