Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Answer: Why does $string++ work the way it does?

by extremely (Priest)
on Oct 26, 2000 at 11:54 UTC ( #38572=categorized answer: print w/replies, xml ) Need Help??

Q&A > strings > Why does $string++ work the way it does? - Answer contributed by extremely

Well, you've discovered that '++' is magic on strings of letters. The magic works on strings like "aaaa" and "aaa111" but on strings like "1111aaaa" you will get 1112. If the string begins with a number then perl will whack off the text and treat it as a number. All the other math ops will do the same for a string that begins with a number.

BTW, perl's definition of a number is pretty complex. "-1e3garg" + "+4ee3" will net you 1004.

$a="-1e3ble"; $b="+4.33eeq"; $c="aaa999"; $d="a9z9z9"; print "a = $a and b = $b\n"; print "c = $c and d = $d\n"; print "a + b = ". $a+$b . "\n"; print "c + d = ". $c+$d . "\n"; print "int(b) = ". int($b) . "\n"; print "++a = ". ++$a . "\n"; print "++b = ". ++$b . "\n"; print "++c = ". ++$c . "\n"; print "++d = ". ++$d . "\n";

try out that code and see what I mean. Note what happens to $c when the numbers flip and notice that $d goes poof. =)

Replies are listed 'Best First'.
Re: Answer: Why does $string++ work the way it does?
by I0 (Priest) on Dec 26, 2000 at 05:23 UTC
    "-1e3garg" + "+4ee3" #gives me -996, not 1004
Log In?

What's my password?
Create A New User
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (8)
As of 2018-05-28 10:11 GMT
Find Nodes?
    Voting Booth?