package Foo::Bar; my $privateFunc1 = sub { ... } my $privateFunc2 = sub { ... } my $privateFunc3 = sub { ... } if (our $TESTING) { # Expose private functions for testing. *_privateFunc1 = $privateFunc1; *_privateFunc2 = $privateFunc2; *_privateFunc3 = $privateFunc3; } #### BEGIN { $Foo::Bar::TESTING = 1; } use Foo::Bar; is( Foo::Bar::_privateFunc1($val), $expect, 'privateFunc1' );