I guess (?) you are trying to apply the lvalue attribute on an anonymous sub.

I wouldn't expect this to work, ( well it does in 5.14 see update 2)

You may try creating a temporary named sub with lvalue and pass the reference, but I'm not sure about implementation details and side effects.

update 1

Since when are lvalue subs allowed to use return ?

update 2

was able to test now and 5.14 allows anonymous lvalue subs, but return won't work.

perl -e' $z=10; $x=sub :lvalue { $z}; (&$x)=42; print &$x; ' 42

maybe try to further isolate the problem...

Cheers Rolf

PS: Je suis Charlie!


In reply to Re: lvalues in perl prior to 5.16.3 throws "Can't modify reference constructor in lvalue subroutine return" by LanX
in thread lvalues in perl prior to 5.16.3 throws "Can't modify reference constructor in lvalue subroutine return" by hurricup

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.