in reply to Perl Safety

Here is my take on this:

Assuming your global using package looks like this...

--- Global.pm --- $GLOBAL = 'Bad bad global'; sub dumbproc { $GLOBAL = 'Still sucks'; }

Then you can hide the globals like this...

--- HideGlobals.pm --- package HideGlobals; use vars qw( @ISA @EXPORT_OK ); require Exporter; @ISA = qw( Exporter ); use Globals; @EXPORT_OK = qw( &hidden_dumbproc ); sub hidden_dumbproc { dumbproc(@_); return $GLOBAL; } 1;

Here is my test code...

use HideGlobals qw( &hidden_dumbproc ); print $HideGlobals::GLOBAL, "\n"; print &hidden_dumbproc, "\n";