Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

Re: perl grep with regex

by choroba (Canon)
on Jun 30, 2014 at 12:36 UTC ( #1091707=note: print w/ replies, xml ) Need Help??

in reply to perl grep with regex

It works for me:

#!/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.

لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

Comment on Re: perl grep with regex
Select or Download Code
Re^2: perl grep with regex
by swissknife (Novice) on Jun 30, 2014 at 13:33 UTC

    Thank you for your response. Does it make any difference when i read arr2 from a file? (in my actual code i get this array by reading a file). i tried as you suggested and got below output.

    Entered in else loop: /^mcs$/ found in (scr mcs tsz unh )
      There's probably some whitespace at the end of the lines in the file. Remove it:
      s/\s+$// for @arr2;
      لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

        actually the space was in the beginning of line. i removed it and now it is working correctly.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1091707]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (5)
As of 2015-01-28 10:49 GMT
Find Nodes?
    Voting Booth?

    My top resolution in 2015 is:

    Results (213 votes), past polls