in reply to regexp issue: Porting script from 5.6.1 to 5.005_02
I'm confused: the regexp you show should match an empty string. It looks like this:
/ ^ # from the start ( # match ( [\w\d\-\_]+ ) # one or more of [class] [:,] # followed by a delimiter | # or match # nothing # nothing ) # then ( .* ) # match zero or more characters $ # .. until we reach end of string /x
This will match against any string that doesn't have newlines in it, and since undef evaluates to the empty string in a string context, it will match (taking advantage of the "or match ... nothing" option).
I don't have perl5.005_02 here, but I tried this:
.. against each of 5.004, 5.004_05, 5.005_03 and 5.6.1 and it printed the expected warning and the expected "ok" in each case.perl -wle 'print "ok" if undef =~ /^(([\w\d\-\_]+)[:,]|)(.*)$/'
Can you come up with a short example like mine that prints "ok" on one of those perl builds, but not on the other?
Hugo
|
|---|