Deparse foreach state $x
authorFather Chrysostomos <sprout@cpan.org>
Tue, 7 Oct 2014 04:59:16 +0000 (21:59 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Tue, 7 Oct 2014 05:11:21 +0000 (22:11 -0700)
commitbcff4148e4ecb89ceb6fd4c8aeecddd213b5b23c
treea327d75cd5214f3af82e1bef7fbe14711eb2873a
parent871cf25050e7f12813974ed07f6e19fcaa160686
Deparse foreach state $x

B::Deparse was emitting ‘foreach my’ instead of ‘foreach state’.

This example prints 1:

use feature ':all'; no warnings experimental;
sub f {
  my sub foo;
  foo(), return if @_;
  for state $x (1) {
    f(1);
    sub foo { print $x, "\n" }
  }
}
f()

If you change ‘state’ to ‘my’, it prints nothing.

So there is a difference between ‘for my’ and ‘for state’.  (At first
I thought there might not be.)
lib/B/Deparse.pm
lib/B/Deparse.t