http://www.perlmonks.org?node_id=375519


in reply to In search of a better way to trim string

Alternative with regex:
sub trimTo { my ($line, $length) = @_; $line =~ s/^(.{0,$length}\s|.{$length}).*/$1.../; return $line; }
I think has the same behaviour as the others. Not tested fully. Not that I think it's any faster than any substr method, but it's an alternative.

Replies are listed 'Best First'.
Re^2: In search of a better way to trim string
by kiat (Vicar) on Jul 19, 2004 at 11:30 UTC
    Maybe just add a line to return the string when its length is shorter than the desired length. Otherwise, with a string like "this is a very long sentence", you get "this is a very long ..." instead of "this is a very long sentence".

    Thanks and cheers :)

      Yes, sorry about that. I'm sure there's a one character change that makes the regex not match when it's shorter than $length, but a) I can't see it immediately, b) that's just stupid golfing.