in reply to Re: Removing Trailing Whitespace: Multiple ways.
in thread Removing Trailing Whitespace: Multiple ways.

That would be really cool, but rmsp() leaves the string null-padded instead of removing the extra blanks.
  • Comment on Re: Re: Removing Trailing Whitespace: Multiple ways.

Replies are listed 'Best First'.
Re: Re: Re: Removing Trailing Whitespace: Multiple ways.
by perlmonkey (Hermit) on May 12, 2001 at 04:18 UTC
    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)