note
eric256
<p>Your "nulls" weren't nulls at all. They arn't spaces either. They are just cases where your regex didn't match, so it didn't return anything. + Requires at least one occurence of the thing it is quantifiying. So if you say <code>"A B" =~ /A(.+?)B/</code> you'll get a hit, because there is at least one thing between the A and B. If you do <code>"AB" =~ /A(.+?)B/</code> it wont match because there isn't at least one thing between A and B. * however matches 0 or more things, so it would match in both cases.</p>
<code>
use strict;
use warnings;
print "A-B =~ /A.+B/ --> ";
print "worked" if "A-B" =~ /A.+B/;
print "\n";
print "A-B =~ /A.*B/ --> ";
print "worked" if "A-B" =~ /A.*B/;
print "\n";
print "AB =~ /A.+B/ --> ";
print "worked" if "AB" =~ /A.+B/;
print "\n";
print "AB =~ /A.*B/ --> ";
print "worked" if "AB" =~ /A.*B/;
print "\n";
</code>
Outputs:
<code>
A-B =~ /A.+B/ --> worked
A-B =~ /A.*B/ --> worked
AB =~ /A.+B/ -->
AB =~ /A.*B/ --> worked
</code>
<div class="pmsig"><div class="pmsig-263384">
<br />___________<br />
Eric Hodges
</div></div>
573946
573961