# New Ticket Created by  "Carl Mäsak" 
# Please include the string:  [perl #126270]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=126270 >


<Guest56815> p6: spurt('/tmp/ABCD.txt',  "A\nB\nC\nD"); for
'/tmp/ABCD.txt'.IO.lines() -> $x, $y { say "$x, then $y"; }
<camelia> rakudo-moar 0cca60: OUTPUT«spurt is disallowed in restricted
setting [...]
<Guest56815> Okay. When running that code, I get "A, then B C, then D
Too few positionals passed; expected 2 arguments but got 0 [...]
<masak> Guest56815: interesting. sounds like a bug. if there are 0
arguments then the loop should be over.
* masak tries to reproduce locally
<masak> yep, reproduced.
* masak submits rakudobug
<Guest56815> Thanks!
<masak> golfed:
<masak> m: for "A\nB\nC\nD".lines() -> $x, $y { say "$x, then $y" }
<camelia> rakudo-moar 0cca60: OUTPUT«A, then B␤C, then D␤Too few
positionals passed; expected 2 arguments but got 0 [...]
<masak> no need for &spurt :)
<jnthn> m: for |(1, 2), |(3, 4), |() -> $x, $y { say "$x, then $y" }
<camelia> rakudo-moar 0cca60: OUTPUT«1, then 2␤3, then 4␤»
<jnthn> Hm, not that... :)
<masak> m: for "A\nB\nC\nD".lines() -> $x { say $x }
<camelia> rakudo-moar 0cca60: OUTPUT«A␤B␤C␤D␤»
<masak> m: for [1,2,3,4] -> $x, $y { say "$x, then $y" }
<camelia> rakudo-moar 0cca60: OUTPUT«1, then 2␤3, then 4␤»
<masak> ok, so something fishy with lines()
<jnthn> m: my \i = "A\nB\nC\nD".lines.iterator; my @x; (say
i.push-exactly(@x, 2)) xx 3
<camelia> rakudo-moar 0cca60: OUTPUT«2␤2␤0␤»
<jnthn> m: my \i = <A B C D>.iterator; my @x; (say i.push-exactly(@x, 2)) xx 3
<camelia> rakudo-moar 0cca60: OUTPUT«2␤2␤␤»
<jnthn> That's the discrepancy. The push-many in the lines iterator is
returning 0 when it should return IterationEnd
* masak adds that to the ticket

Reply via email to