in reply to extracting numbers with a regex

I am using a regex to extract some numbers from a string, to build an array of numbers. However, I don't seem to be able to use < and > to compare the numbers.

The conversion from strings to numbers is automagic, though you could write:   $VAR1 = ['M4568-51', 'M', 0 + '4568', 0 + '51' ]; to force the conversion.

Can you post a fragment of code that demonstrates the problem?

Replies are listed 'Best First'.
Re: Re: extracting numbers with a regex
by Fastolfe (Vicar) on Dec 05, 2001 at 11:25 UTC
    I'd even go so far to recommend against doing 0 + '4568' because it's really pretty meaningless. A scalar is a scalar. If there's a number in there, use it like a number and it will act like a number. The only time we should have to resort to 0+ trickery is when there's some ambiguity (e.g. we want to treat "123abc" as "123" numerically, or "0E0" for similar reasons) or we need to do some black magic. Using it unnecessarily complicates code needlessly and makes it harder to read. I've actually seen code where the coder wrote something like: $i = "123"+0 because he didn't quite understand that the two data types were interchangeable in Perl. Scary!