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


in reply to Re: trim() magic
in thread trim() magic

What I’d do differently now: at least this:

sub trim2 { return trim2 $_ if not @_; return map { s/^\s+//; s/\s+$//; $_ } my @c = @_ if defined wantarray; for ( @_ ) { s/^\s+//, s/\s+$// } }

And someone who can be bothered should benchmark the following variants:

sub trim3a { return trim3a $_ if not @_; s/^\s+//, s/\s+$// for wantarray ? my @c = @_ : defined wantarray ? my $c = $_[-1] : @_; @c ? @c : $c ? $c : (); } sub trim3b { return trim3b $_ if not @_; my $w = wantarray; s/^\s+//, s/\s+$// for $w ? my @c = @_ : defined $w ? my $c = $_[-1] : @_; @c ? @c : $c ? $c : (); }

Makeshifts last the longest.