<?xml version="1.0" encoding="windows-1252"?>
<node id="1017817" title="Re: Why Perl boolean expression sometimes treated as lvalue?" created="2013-02-08 08:28:58" updated="2013-02-08 08:28:58">
<type id="11">
note</type>
<author id="757127">
tobyink</author>
<data>
<field name="doctext">
&lt;p&gt;Hmmm... interesting disparity. The following may be of interest...&lt;/p&gt;

&lt;c&gt;
use v5.10;

my ($a, $b) = (0, 0);

sub lv :lvalue { $_[0] }

lv($a || $b) = 2;
lv($a &amp;&amp; $b) = 1;

say $a;
say $b;
&lt;/c&gt;

&lt;div class="pmsig"&gt;&lt;div class="pmsig-757127"&gt;
&lt;small&gt;&lt;small&gt;&lt;tt&gt;package Cow { use Moo; has name =&gt; (is =&gt; 'lazy', default =&gt; sub { 'Mooington' }) } say Cow-&gt;new-&gt;name&lt;/tt&gt;&lt;/small&gt;&lt;/small&gt;
&lt;/div&gt;&lt;/div&gt;</field>
<field name="root_node">
1017801</field>
<field name="parent_node">
1017801</field>
</data>
</node>
