>perl -wMstrict -le "package base; sub func { print q{in }, __PACKAGE__, qq{ via $_[0] got $_[1]}; } package derived; our @ISA = qw(base); package main; my $pack = 'derived'; $pack ->func(42); 'derived'->func(42); my $foo = 'fu'; $pack->can(qq{${foo}nc})->(42); no strict 'refs'; &{ $pack->${\qq{${foo}nc}} }(42); $pack->${\qq{${foo}nc}}->(42); " in base via derived got 42 in base via derived got 42 Use of uninitialized value in concatenation (.) or string at ... in base via 42 got Use of uninitialized value in concatenation (.) or string at ... in base via derived got Undefined subroutine &main::1 called at -e line 1.