# input : string (sentence) # output: truncated string at period, question mark or exclamation poi +nt sub strim { my ($s, $i) = @_; $s =~ s/^\s+$//g; return $s unless defined $i; if (length $s <= $i) { return $s; } else { while (right(left($s, $i), 2) ne '. ' && right(left($s, $i), 2) ne '? ' && right(left($s, $i), 2) ne '! ') { $i--; return left($s, $_[1]) if ($i < 1); } return left($s, $i); } } # input : string, integer # output: truncated string sub left { my ($s, $i) = @_; return unless defined $s; return $s unless defined $i; return substr($s, 0, $i); } # input : string, integer # output: truncated string sub right { my ($s, $i) = @_; return unless defined $s; return $s unless defined $i; return substr($s, length($s) - $i, $i); }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Truncate a string (news lead?)
by premchai21 (Curate) on Sep 12, 2001 at 06:37 UTC | |
by merlyn (Sage) on Sep 12, 2001 at 19:13 UTC | |
by mountd (Novice) on Sep 13, 2001 at 08:10 UTC | |
by merlyn (Sage) on Sep 13, 2001 at 12:18 UTC | |
by premchai21 (Curate) on Sep 13, 2001 at 22:16 UTC | |
by merlyn (Sage) on Sep 13, 2001 at 23:51 UTC | |
by blakem (Monsignor) on Sep 13, 2001 at 22:40 UTC |