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;
In reply to Re^3: Regex capture consumed by non-capturing match
by ikegami
in thread Regex capture consumed by non-capturing match
by ribasushi
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |