On Wed, Sep 2, 2015 at 7:49 AM, Matija Papec <mpapec2...@yandex.com> wrote:
> > I've picked a wrong example, > > seq 3 | perl -nE 'my %d; $d{$_}++; END { say keys %d }' > > vs > > seq 3 | perl6 -ne 'my %d; %d{$_}++; END { say keys %d }' > > So it seems that perl6 handles lexicals inside while (<>){} one-liners > differently. > Ah, yes. Interesting. Run-time effect of C<my> not happening repeatedly. How would that deparse? Compare: $ seq 3 | perl6 -e 'for lines() { my %d; %d{$_}++; END { say keys %d } }' 3 $ seq 3 | perl6 -e 'for lines() { state %d; %d{$_}++; END { say keys %d } }' 1 2 3 $ … and while I'm comparing: $ seq 3 | perl6 -e 'for lines() { my %d; %d{$_}++; END { say keys %d } }' 3 $ seq 3 | perl -E 'while (<>) { my %d; $d{$_}++; END { say keys %d } }' 1 $ … I need me a new mental model. :-) Eirik