## MyModule.pm first package MyModule; use strict; sub isFile { my($file, $verbose) = @_; print "checking file '$file': " if ($verbose); if (! -f $file) { print "not found\n" if ($verbose); return 0; } else { print "found\n" if ($verbose); return 1; } } sub new { my $class = shift; my %self = @_; return bless \%self, $class . 'OO'; } package MyModuleOO; use strict; sub isFile { my($self, $file, $verbose) = @_; $verbose = $self->{verbose} unless (defined $verbose); MyModule::isFile($file, $verbose); } sub verboseOff { my($self) = @_; $self->{verbose} = 0; } 1; ## t.pl usage test use strict; use MyModule; if (MyModule::isFile('MyModule.pm', 1)) { print "ok\n"; } my $env = MyModule->new(verbose => 1); if ($env->isFile('MyModule.pm')) { print "ok\n"; } $env->verboseOff; if ($env->isFile('MyModule.pm')) { print "ok\n"; }