I'm preparing to present an intro to Perl for some coworkers so I'm glad I found this problem before presenting. The regex in line 10 matches when it shouldn't. I had to stare at it for a while before figuring it out. I'm posting here to give the newbies or anyone else a chance to debug a silly problem.
use warnings; use strict; $_ =''; # find empty lines. print " - empty line\n" if /^$/; # find lines that contain one or more whitespace characters. print " - contains whitespace 1\n" if m/^\s+$/ =~ $_; ## line 10 print " - contains whitespace 2\n" if m/^\s+$/;
Running deparse on the script makes it obvious:
In reply to regex matches when it seems that it shouldn't by Lotus1
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |