http://www.perlmonks.org?node_id=1017817


in reply to Why Perl boolean expression sometimes treated as lvalue?

Hmmm... interesting disparity. The following may be of interest...

use v5.10; my ($a, $b) = (0, 0); sub lv :lvalue { $_[0] } lv($a || $b) = 2; lv($a && $b) = 1; say $a; say $b;
package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name