What follows is snippet out of a more complex script and reworked to
simplify but still not seeing what causes the problem.
I'm not sure if I've just stared at it too long or what. When I run it
I get this error:
Use of uninitialized value in pattern match (m//) at ./match.pl
line 14. No match here
I'm far less than skilled with the perl debugger but walking thru with
it, I tested by way or `print', if both variables have value before
the match, and of course they do. I've looked hard for a mis-spelling
but don't see one.
Just not seeing the problem... Is it a complete misuse of `=~' ? or
what?
I realize I could forgo the qr// compilation but should that be necessary?
In the actual script its used 20-100 times on each of thousands of
files. (the program scans only the headers of mail messages)
And shouldn't the expressions match? Or does !~ signify an EXACT
match? I understood, it signifies a regex match in which case
`Date:' should match `Date: some date'... shouldn't it?
------- --------- ---=--- --------- --------
#!/usr/local/bin/perl
use strict;
use warnings;
my $date_re = qr/^Date:/;
my $other_re = qr/^Date: some date/;
if (/$date_re/ !~ /$other_re/){
print "No match here\n"
}else{
print "It's a match\n";
}
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/