in reply to More Lvalue Subs - Double-Barreled Closures

print scalar(foo), ', ', $_, $/ for foo;

I can't get that to work in any version of Perl I have here. It doesn't print anything at all in 5.6.0, and from 5.6.1 up to bleadperl, it prints:

Use of uninitialized value in print at cl line 16. Flintstone,

: lvalue was introduced in 5.6.0, so trying older versions of Perl doesn't make sense.

However, if I change the line to

print scalar(foo), ', ', $_, $/ for my @a = foo;

I get the expected:

Flintstone, Fred Flintstone, Wilma Flintstone, Pebbles

It's the lvalue that messes up. Consider the reduced case:

my @foo = qw /one two three/; sub foo () : lvalue {@foo} print for foo; __END__ Use of uninitialized value in print at /tmp/bug line 9

But removing the ': lvalue' prints the content of the array. I'll perlbug it.

Abigail