in reply to Re: [Perl 6] Returning Multiple Values
in thread [Perl 6] Returning Multiple Values

Many thanks. The last things you found were due to copy-paste of the lines without removing the PRIME from the function name. I intended to show that the function with the signature behaves differently than the same function body without the signature.

Thanks for the close reading. After a while all those commas and stuff just blur together for me.

—John

  • Comment on Re^2: [Perl 6] Returning Multiple Values

Replies are listed 'Best First'.
Re^3: [Perl 6] Returning Multiple Values
by hexcoder (Curate) on Aug 10, 2008 at 21:55 UTC
    You're welcome!

    I saw your corrections, but there is one point left I think.

    In section Accepting values returned to you in the first invocation using ret-test'(5) the result of ($x gets 1 and $y gets 'Smith') is OK (according to the comment),

    my (Str $y, Int $x) := ret-test'(5); # y=>'Smith', x=>1, so OK
    then in the third invocation the same result (as the comment suggests) is WRONG.
    my (Str $y, Int $x) := ret-test(5); # ($x,$y) gets (1,'Smith'), WRONG
    So i assume it is WRONG but the comment has $x and $y (or the list values) swapped. And probably the same for the forth invocation.
      The first calls ret-test-PRIME, which has the signature removed. But you are right, the comment is reversed.

      Worse than cut and paste: when trying to design the exact rules, it was different earlier. The use cases for pitfalls became the examples for why the Capture is reformed according to the Signature.

      I think I skimmed over the code block when proofing, too. I want to explain that better in prose.

      —John