use warnings; use strict; use Test::More 'no_plan'; BEGIN { use_ok('Mysimple_mod', qw (external) ) }; my $mod = 'Mysimple_mod'; ok ( defined( &external ), "#2 external is defined"); ok ( defined( &Mysimple_mod::internal ), "#3 internal is defined"); ok ( defined( &Mysimple_mod::bogus ), "#4 bogus subroutine"); ok ( defined( &{"${mod}::bogus"} ), "#5 bogus subroutine"); my @softies = qw(internal); # my @softies = qw(internal bogus); for my $softy (@softies) { my $func = "${mod}::$softy"; no strict 'refs'; ok( $func->(3) == 9, qq{invoke soft ref'd func $func( 9)} ); ok( $func->(3) == 10, qq{invoke soft ref'd func $func(10)} ); }