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 | |
652bff51 |
11 | BEGIN { |
12 | if ("$]" < 5.020) { |
13 | plan 'skip_all' => 'lexical subs unreliable on this perl'; |
14 | } |
15 | } |
16 | |
d3b7b05c |
17 | use feature 'lexical_subs'; |
18 | no warnings 'experimental::lexical_subs'; |
19 | |
20 | use Sub::Name; |
21 | |
22 | local $TODO = "lexical subs unnameable until perl 5.22" |
23 | unless "$]" >= 5.022; |
24 | |
25 | my $foo = sub { (caller 0)[3] }; |
26 | |
27 | my sub foo { (caller 0)[3] } |
28 | |
29 | subname 'main::foo2' => \&foo; |
30 | is foo(), 'main::foo2', 'lexical subs can be named'; |
31 | |
32 | my $x = 3; |
33 | my sub bar { (caller 0)[$x] } |
34 | subname 'main::bar2' => \&bar; |
35 | is bar(), 'main::bar2', 'lexical closure subs can be named'; |
36 | |
37 | done_testing; |