in reply to Match function not providing results
I must admit that I haven't read your code fully, but I'm not sure your regexp is correct. This:
will match any string which contains an 'a' and a 'd' right next to each other, e.g. 'add', 'dad', etc. I'm not sure if that's what you want to do...param('s1') =~ m/ad/i
If you want to match a string which contains an 'a' and a 'd' anywhere in the string, e.g. 'and' or 'drag', then here's an easy way:
Hope that helps,param('s1') =~ /a/i and param('s1') =~ /d/i
Update: if you want one or the other, then you could do
or, as Corion suggests, you could use a character class.param('s1') =~ /a/i or param('s1') =~ /d/i
If you have a list of characters that you want to match any of, then you could do it like this:
where the /x at the end of the regexp makes it ignore white space (because @list will expand like this: 'a b c').my @list = qw(a b c); if (param('s1) =~ /[@list]/xi) { print "one of the characters matched" }
andy.
|
|---|