On Sun, Jul 26, 2009 at 17:59, John W. Krahn<[email protected]> wrote:
> Bryan Harris wrote:
snip
>> Oddly, perl won't let me do "my ($_) = shift;", so I'm stuck having to use
>> another variable.
>
> Perl 5.10 *will* let you do "my $_".
snip
Be warned that you may reveal bugs if you use make $_ lexical:
#!/usr/bin/perl
use 5.010;
use strict;
use warnings;
use List::Util qw/first/;
my $first = (first { $_ eq "f" } "a" .. "z") // "undef";
say "with global \$_: $first";
{
my $_ = "foo";
my $first = (first { $_ eq "f" } "a" .. "z") // "undef";
say "with lexical \$_: $first";
}
my $first = (first { $_ eq "f" } "a" .. "z") // "undef";
say "still fine with global \$_: $first";
{
local $_ = "foo";
my $first = (first { $_ eq "f" } "a" .. "z") // "undef";
say "still fine with local \$_: $first";
}
This bug is currently being discussed on the Perl 5 Porters list and
may be fixed in 5.10.1.
--
Chas. Owens
wonkden.net
The most important skill a programmer can have is the ability to read.
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/