Which of these two versions of similarly functional functions is "more efficient" in your opinion and why? Thanks!
use strict; # Using regex sub trimall_v1 { # Trims all extra whitespace from left, right and middle! my @out=@_; # Pass by value! for (@out) { s/^\s+//; s/\s+$//; s/\s+/ /g; } return wantarray ? @out : $out[0]; } # Using specialized split on ' ' and $_ sub trimall_v2 { # Trims all extra whitespace from left, right and middle! my @out=@_; # Pass by value for (@out) {$_= join ' ',split;} return wantarray ? @out : $out[0]; } my $val=" Scalar \r\r\n\t\t\n "; my @list=(" List\t\t\n 1 \n \n \n"," \t\t List 2 "," List\t\t\t\ +n 3\t\n\n\r "); print "'$_'\n" for (trimall_v1($val)); print "'$_'\n" for (trimall_v1(@list)); print "'$_'\n" for (trimall_v2($val)); print "'$_'\n" for (trimall_v2(@list)); __END__
In reply to regex verses join/split by aquacade
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |