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 );
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|