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


According to S03 it is possible to chain sequence operators. There are some 
tests in S03-sequence/misc.t and there is also the following example in S03:

$ perl6 -e 'say 1, *+1 ... { $_ == 9 }, 10, *+10  ... { $_ ==  90 }, 100, *+100 
... { $_ == 900 }'
use of uninitialized value of type Nil in numeric context  in block <unit> at 
-e:1

1 2 3 4 5 6 7 8 False False False False False False False False False False 
False False False False False False False False False False False False False 
False False False False False False False False False False False False False 
False False False False False False False False False False False False False 
False False False False False False False False False False False False False 
False False False False False False False False False False False False False 
False False False False False False False False False False False False False 
False False False False ...

That's not what was expected (and described in S03). I tried to golf the 
problem a bit and found the following:

$ perl6 -e 'say 1, 2 ... 4, 6 ... 10'         ## seems to work
1 2 3 4 6 8 10

$ perl6 -e 'say 1, 2 ... 4, 6 ... 10, 12'     ## oops; also stops with 10
1 2 3 4 6 8 10

$ perl6-m -e 'say 1, 2 ... * > 3, 6'          ## seems to work
1 2 3 4 6

$ perl6-m -e 'say 1, 2 ... * > 3, 6 ... 10'   ## dies
Too few positionals passed; expected 1 argument but got 0
  in block <unit> at -e:1

$ perl6-m -e 'say 1, 2 ... { $_ > 3 }, 6'     ## works
1 2 3 4 6
perl6-m -e 'say 1, 2 ... { $_ > 3 }, 6 ... 10'  ## doesn't die, but ...
use of uninitialized value of type Nil in numeric context  in block <unit> at 
-e:1

1 2 3 False False False False False False False False False False False False 
False False False False False False False False False False False False False 
False False False False False False False False False False False False False 
False False False False False False False False False False False False False 
False False False False False False False False False False False False False 
False False False False False False False False False False False False False 
False False False False False False False False False False False False False 
False False False False False False False ...

I vaguely suspect that during evaluation of the sequences after one point the 
wrong values (no values at all) are passed to a smartmatch operation.

Reply via email to