#!/usr/bin/perl -wl
use strict;
package base;
sub func {
print q{in }, __PACKAGE__, qq{ via $_[0] got $_[1]};
}
package derived;
our @ISA = qw(base);
package main;
my $pack = 'derived';
my $foo = 'fu';
$pack->${\qq{${foo}nc}}(42);
__END__
in base via derived got 42
####
$pack->${\qq{${foo}nc}}->(42);
####
#!/usr/bin/perl
use strict;
use warnings;
*{main::1} = sub { print "1() called with args: @_\n" };
main::1(42); # 1() called with args: 42
main::1->(42); # 1() called with args: 42
1->(42); # 1() called with args: 42
main->${\1}(42); # 1() called with args: main 42
no strict 'refs';
main->${\1}->(42); # 1() called with args: main
# 1() called with args: 42