in reply to Re^3: Wildcard in a hash
in thread Grep asterisk sign in input file

thanks, but in the loop of read input file, "if ($pins1 =~ /^$key$/) ", the dollar sign, $ will have to be removed too. I forget to mention that for the pins/ports name, it has expression like this symbol, [], which means that it cant be cathed when using ur way. This is the only weak point.
For example, c4a_123[3]

Replies are listed 'Best First'.
Re^5: Wildcard in a hash
by shmem (Chancellor) on Aug 16, 2017 at 06:16 UTC
    thanks, but in the loop of read input file, "if ($pins1 =~ /^$key$/) ", the dollar sign, $ will have to be removed too.

    This applys only if you want a partial match of the keys. A key like c4a would then match c4a_123[3] also.

    You could escape the brackets:

    $pins2 =~ s/\*/.*/; # make key into regex string if containing * $pins2 =~ s/([\[\]])/\\$1/g; # escape brackets c4a_123[3] -> c4a_1 +23\[3\]

    That way the brackets aren't treated as a character class whilst matching the keys.

    perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'
      sry, what if in waiver file like this,
      *bump*,175.00,2000.00 *bump*,250.00,2000.00
      in original code, it will take the second one as reading, how can make it so that it ca read through both lines