in reply to Number as string

It's not possible. In Perl, unlike most languages, the operators force their context on their operands. If you use + on any values, they will be converted into numerics. What exactly are you trying to accomplish?

Replies are listed 'Best First'.
Re^2: Number as string
by Marshall (Canon) on Mar 13, 2009 at 18:54 UTC
    This is right. Everything is a string until you do something that puts it into a numeric context. Here's a little trick that "deletes" leading zeroes.
    #!/usr/bin/perl -w use strict; my $num="000123"; print "$num\n"; $num += 0; print "$num\n"; _END_ prints: 000123 123
    If you are say comparing things that are supposed to be numbers, then use the numeric compare rather than a string compare! Perl doesn't know "000123" is a number until you say it is. A <,>, etc. will trigger this numeric conversion. Just something to watch out for when you are doing sorts, etc. The ascii sort order is different than the numeric sort order, see this...
    my $a="99"; my $b="111"; if ($a gt $b) {print "$a is greater than $b";} #prints 99 is greater than 111