package mdlno; use strict; use warnings; use feature 'say'; my $param = shift; say main() unless caller(); sub main { $param //= 'World'; return 'Hello ' . $param; } #### use strict; use warnings; use Test::More tests => 2; use FindBin qw( $RealBin ); use lib $RealBin; use mdlno; my $rtn = mdlno->main(); is $rtn, 'Hello World', 'Works without parameter'; $mdlno::param = 'and goodbye'; $rtn = mdlno->main(); is $rtn, 'Hello and goodbye', 'Works with parameter';