my $class = 'Very::Long::Class::Name';
$class->method;
####
my $pkg = 'Very::Long::Package::Name';
$pkg::sub;
##
##
use strict;
use warnings;
{
package very::long::packagename;
sub foo
{
print '[', join( '][', @_ ), "]\n";
return "from sub foo\n";
}
}
{
package pkg;
our $foo = "foovar\n";
}
{
package bar;
# this refers to $foo in package 'pkg'
print $pkg::foo; # foovar
# fully qualified sub call
very::long::packagename::foo( 'param' ); # [param]
# create a ref to a fully qualified sub
my $subfoo_ref = \&very::long::packagename::foo;
print $subfoo_ref->( 'param' ); # from sub foo
$subfoo_ref->( 'param' ); # [param]
# call the sub as a method
my $pkg = 'very::long::packagename';
$pkg->foo( 'param' ); # [very::long::packagename][param]
# stringify the call, use eval
my $func_str = $pkg . "::foo( 'param' );";
eval $func_str; # [param]
}