Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: Alternative ways to fully qualify subroutine names

by ikegami (Pope)
on Feb 04, 2006 at 20:34 UTC ( #527989=note: print w/ replies, xml ) Need Help??


in reply to Alternative ways to fully qualify subroutine names

the more subs I import the harder it becomes to keep track of where they are all from

You could import the sub to a different name:

*vlp_func = \&Very::Long::Package::func;

Update: The following is a means of doing the above with a large number of functions:

use warnings; use strict; sub import_func { my ($src_name, $dst_name) = @_; if (not defined $dst_name) { $dst_name = (split(/::/, $src_name))[-1]; } if (index($dst_name, '::') < 0) { $dst_name = caller() . '::' . $dst_name; } my $src_func_ref = do { no strict 'refs'; \&$src_name }; my $dst_glob_ref = do { no strict 'refs'; \*$dst_name }; *$dst_glob_ref = $src_func_ref; } sub Foo::Bar::func { print("Hello World!\n"); } import_func('Foo::Bar::func', 'fb_func'); fb_func(); # Calls Foo::Bar::func

To import multiple functions at once, you can use

import_func("Foo::Bar::$_", "fb_$_") foreach qw( func moo bla );


Comment on Re: Alternative ways to fully qualify subroutine names
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://527989]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (16)
As of 2015-07-07 17:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (93 votes), past polls