http://qs321.pair.com?node_id=573961


in reply to Re: Null scalars in array
in thread Null scalars in array

Ah-ha!!
Thanks, that's most likely my problem, the "null values" are actually not nulls they are spaces, sometimes 1 but it could be up 10.
Does this mean the piece of regex will not work?
Thanks again for the help I don't know how I would cope or avoid killing people without perlmonks.
Smaug

Replies are listed 'Best First'.
Re^3: Null scalars in array
by eric256 (Parson) on Sep 20, 2006 at 21:14 UTC

    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 "A B" =~ /A(.+?)B/ you'll get a hit, because there is at least one thing between the A and B. If you do "AB" =~ /A(.+?)B/ 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.

    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";
    Outputs:
    A-B =~ /A.+B/ --> worked A-B =~ /A.*B/ --> worked AB =~ /A.+B/ --> AB =~ /A.*B/ --> worked

    ___________
    Eric Hodges
Re^3: Null scalars in array
by ysth (Canon) on Sep 20, 2006 at 20:48 UTC
    You've confused me now. What is your input and what are your desired and actual outputs?