in reply to accessing stashes
#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; { package My; sub one { print "123"; } sub two; } say ${My::}{one}; # *My::one say ${My::}{two}; # -1 say ${My::}{three}; # say defined *My::one{CODE}; # 1 say defined *My::two{CODE}; # 1 say defined *My::three{CODE}; # say exists &My::one; # 1 say exists &My::two; # 1 say exists &My::three; # say defined &My::one; # 1 say defined &My::two; # say defined &My::three; #
Update: added the first paragraph of says.
Update 2: Interestingly, a forward declared sub with prototypes returns the prototypes with the first syntax:
sub four (&@); # ... say ${My::}{four}; # &@
Update 3: ... unless you add an attribute, too, which makes it output the glob name.
sub five (&@) :method; say ${My::}{five}; # *My::five
Update 4: The -1 is printed only if you remove all other mentions of My::three, otherwise *My::three is printed.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: accessing stashes
by ikegami (Patriarch) on Mar 01, 2019 at 19:12 UTC | |
|
Re^2: accessing stashes
by morgon (Priest) on Mar 01, 2019 at 18:45 UTC | |
by ikegami (Patriarch) on Mar 01, 2019 at 19:14 UTC | |
by ikegami (Patriarch) on Mar 01, 2019 at 19:52 UTC | |
by morgon (Priest) on Mar 01, 2019 at 19:25 UTC | |
by ikegami (Patriarch) on Mar 01, 2019 at 19:28 UTC | |
by morgon (Priest) on Mar 01, 2019 at 19:35 UTC | |
|