in reply to perl grep with regex
#!/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.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: perl grep with regex
by swissknife (Sexton) on Jun 30, 2014 at 13:33 UTC | |
by choroba (Cardinal) on Jun 30, 2014 at 13:37 UTC | |
by swissknife (Sexton) on Jun 30, 2014 at 14:20 UTC |