# New Ticket Created by Bruce Gray # Please include the string: [perl #125265] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org/Ticket/Display.html?id=125265 >
I tried to translated Perl 5: my %bases=('K' => $base, 'M' => $base**2, 'G'=>$base**3, 'T'=>$base**4); into both of these in Perl 6: my %bases = <K M G T> Z=> ( $base X** 1..* ); my %bases = <K M G T> Z=> ( $base <<**<< 1..* ); The cross-op version works. The hyper-op version gives incorrect output: <Util> m: my $base = 10; my %bases = <K M G T> Z=> ( $base <<**<< 1..* ); say %bases.perl <camelia> rakudo-moar c2a57e: OUTPUT«{:G(12), :K(10), :M(11), :T(13)}<>» Removing the interactions of Z=> and Whatever, lead to this simplified bug: < Util> m: say [ 10 <<**<< (1,2,3,4) ].perl; <+camelia> rakudo-moar c2a57e: OUTPUT«[10, 100, 1000, 10000]» < Util> m: say [ 10 <<**<< (1..4) ].perl; <+camelia> rakudo-moar c2a57e: OUTPUT«Cannot find method 'Range' in block <unit> at /tmp/nk6UBshobl:1» < Util> ??? Bug? < masak> Util: looks like. < lizmat> repeatable WAT's should be perlbugged :-) < masak> Util: please submit. < Util> lizmat: Noted. masak: will do. < Util> lizmat: I confess that when I post 2 (working,then non-working) `m:` on this channel, and ask `bug?` < Util> I am also secretly asking "is this a *known* bug, that I would already know if I read the channel as much as I should" :^) < Util> thanks all! < lizmat> Util: fwiw, it didn't look familiar to me Note that the problem persists when `**` is changed to `*`. The result does change when the range is wrapped in parens. <Util> m: say [ 10 <<*<< (1,2,3,4) ].perl; <camelia> rakudo-moar c2a57e: OUTPUT«[10, 20, 30, 40]» <Util> m: say [ 10 <<*<< 1..4 ].perl; <camelia> rakudo-moar c2a57e: OUTPUT«[]» <Util> m: say [ 10 <<*<< (1..4) ].perl; <camelia> rakudo-moar c2a57e: OUTPUT«Cannot find method 'Range' in block <unit> at /tmp/NvWvYfUj6y:1» Finally, I do not see the problem when the "magic" pointy-side of the hyper is a range; the problem only shows up on the non-magic side. <Util> m: say (1,2,3,4) >>*>> (2..3); <camelia> rakudo-moar c2a57e: OUTPUT«2 6 6 12» -- Thank you, Bruce Gray (Util of PerlMonks)