*vlp_func = \&Very::Long::Package::func;
####
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
##
##
import_func("Foo::Bar::$_", "fb_$_")
foreach qw( func moo bla );