jeffp@hut [10:44am] ~ #104> perl -MDevel::Peek
$str = "something";
Dump($str);
SV = PV(0xa3424) at 0xb4fc0
REFCNT = 1
FLAGS = (POK,pPOK)
PV = 0xb9600 "something"\0
CUR = 9
LEN = 10
So Perl determines the string length when it's set (which would be when you created the string originally), and uses that value when you call length(). But you're right that you have to go through the entire string when you use tr///. I admit that sucks a bit. | [reply] [d/l] [select] |
FYI, unlike C's <char *>, Perl has real strings
that know how long they are. So <length> is as
fast as getting the integer value of a scalar that
already has its integer value cached.
| [reply] |