
BillKSmith
Veteran
Jul 2, 2012, 12:07 PM
Post #2 of 3
(1160 views)
|
|
Re: [cosmokramer] how to pattern match and fish out a entry from a hash
[In reply to]
|
Can't Post
|
|
I can accomplish your objective in a different way. Convert your $var into a regular expression and then use it to grep the keys of %data. use strict; use warnings; my %data = ( b_slash_car_bit_slash_tebla_bit => 'b/car[10]/tebla[9]', b_slash_car_bit_slash_tesla_bit => 'b/car[10]/tesla[0] b/car[9].tesla[1]', ); my $var = "b/car[*]/te*a"; $var =~ s/\//_slash_/g; $var =~ s/(?<! \[ ) \* (?! \])/.*/xg; $var =~ s/ \[ [*] \] /.*/xg; print +(grep {/$var/} keys %data) ? 'Yes' : 'No', "\n"; Good Luck, Bill
(This post was edited by BillKSmith on Jul 2, 2012, 12:10 PM)
|