in reply to Re^7: Function name in a variable, can't recall the concept (introspection with ->can )
in thread Function name in a variable, can't recall the concept
He probably means something hypothetical...
I was actually thinking about this seriously, and I would likely do something as:
sub get_sub_by_name { my ($pkg, $name) = @_ ; no strict 'refs' ; if ( exists ${$pkg . '::'}{$name} ) { if ( ref ${$pkg . '::'}{$name} eq 'CODE' ) { return *{$pkg . '::' . $name} ; } } ; }
Maybe it can be written more pretty, and I don't know if any odd-cases are trapped (e.g. what about __ANON__)
edit: Comes to think of it, maybe the line 'exists' is not even needed?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^9: Function name in a variable, can't recall the concept (introspection with ->can )
by LanX (Saint) on Apr 19, 2019 at 15:23 UTC | |
by Veltro (Hermit) on Apr 19, 2019 at 17:30 UTC | |
by ikegami (Patriarch) on Apr 19, 2019 at 18:06 UTC | |
by Veltro (Hermit) on Apr 19, 2019 at 18:35 UTC | |
by ikegami (Patriarch) on Apr 19, 2019 at 18:55 UTC | |
by LanX (Saint) on Apr 19, 2019 at 18:52 UTC |