use a_module; my $global = a_module->new(); sub func1 { $global->do_something1(); } sub func2 { $global->do_something2(); } $global->do_init; func1(); func2(); #### use a_module; sub func1 { my $var = $_[0]; $var->do_something1(); } sub func2 { my $var = $_[0]; $var->do_something2(); } my $local = a_module->new(); $local->do_init; func1($local); func2($local); #### use a_module; sub func1 { my $var = $_[0]; $var->do_something1(); } sub func2 { my $var = $_[0]; $var->do_something2(); } my $local = a_module->new(); $local->do_init; func1(\$local); func2(\$local);