You could fix it in both places. I would definitely consider passing a global a bug.
May I also suggest an alternate implementation?
#!/usr/bin/perl
sub trim_start {
for (my $s = @_ ? $_[0] : $_) {
s/\A\s+//m;
return $_;
}
}
sub trim_end {
for (my $s = @_ ? $_[0] : $_) {
s/\s+\z//m;
return $_;
}
}
{
my $test = 'abc , def';
$test =~ /([\s\w]+),([\s\w]+)/;
my @words = map trim_start,
map trim_end,
"$1", "$2";
}
The advantage of that implementation is that its flexible as to how its called.
-
It can be used to trim a single value:
print(trim_start(trim_end($var)), "\n");
-
It can be used to trim a list of values:
my @trimed = map trim_start, map trim_end, @untrimmed;
|