Yah, so I was lazy and I cheated a bit. $foo will look good
when you print it though. What can I say, there
are reasons I am a perl programmer.
But to be all official like and actually update the scalar
value to be a proper string of length 4 you can use this
code for rmsp:
void rmsp(SV * sv) {
char * end;
int length;
if( !SvPOK(sv) ) return;
end = SvEND(sv);
length = SvCUR(sv);
end--; /* skip \0 */
while( *end == ' ' && length >=0 ) {
end--;
length--;
}
if( length >= 0 ) SvCUR_set(sv, length);
}
And the new results I got are:
Benchmark: timing 1000000 iterations of inline, regex...
inline: 6 wallclock secs ( 4.19 usr + 0.01 sys = 4.20 CPU)
regex: 9 wallclock secs ( 7.71 usr + 0.02 sys = 7.73 CPU)