3 ms·
This is not much different than mutating a global variable inside a function. I would write your code as: foo($_) foreach @bar; sub foo { my
by prakashk 15y ago
This is not much different than mutating a global variable inside a function.
I would write your code as:
foo($_) foreach @bar;
sub foo {
my $var = shift;
$var =~ s/foo/bar/;
print $var;
}
You can also fix this is to localize $_ inside the function, if you don't want to pass $_ as a parameter.
foo foreach @bar;
sub foo {
my $var = $_;
$var =~ s/foo/bar/;
print $var;
}
You can even use $_ instead of $var (although it looks a little weird assigning $_ to itself):
foo foreach @bar;
sub foo {
my $_ = $_;
s/foo/bar/;
print;
}