Smart::Commentsとeach

#!/usr/bin/env perl

my %hash = (
    foo => 'one',
    bar => 'two',
    baz => 'san',
);
### %hash

while (my ($k, $v) = each %hash) {
    print "W $k\n";
}
print "F $_\n" for keys %hash;
print "bye\n";
$ perl t.pl
W bar
W baz
W foo
F bar
F baz
F foo
bye
$ perl -MSmart::Comments t.pl

### %hash: {
###          bar => 'two',
###          baz => 'san',
###          foo => 'one'
###        }

F bar
F baz
F foo
bye

なんでか-MSmart::Commentsするとwhile each が実行されない。なんでじゃろ。

「### %hash」の後で$gomi = keys %hash;とかするとOKなので、eachがリセットされてないんかな。