Commit | Line | Data |
d3b7b05c |
1 | use strict; |
2 | use warnings; |
3 | |
4 | use Test::More; |
5 | BEGIN { |
6 | if ("$]" < 5.018) { |
7 | plan 'skip_all' => 'lexical subs not supported on this perl'; |
8 | } |
9 | } |
10 | |
11 | use feature 'lexical_subs'; |
12 | no warnings 'experimental::lexical_subs'; |
13 | |
14 | use Sub::Name; |
15 | |
16 | local $TODO = "lexical subs unnameable until perl 5.22" |
17 | unless "$]" >= 5.022; |
18 | |
19 | my $foo = sub { (caller 0)[3] }; |
20 | |
21 | my sub foo { (caller 0)[3] } |
22 | |
23 | subname 'main::foo2' => \&foo; |
24 | is foo(), 'main::foo2', 'lexical subs can be named'; |
25 | |
26 | my $x = 3; |
27 | my sub bar { (caller 0)[$x] } |
28 | subname 'main::bar2' => \&bar; |
29 | is bar(), 'main::bar2', 'lexical closure subs can be named'; |
30 | |
31 | done_testing; |