#! perl -w
use strict;
package MyModule;
sub isFile {
my $file = shift; # a file in local directory expected
my $verbose = shift; # optional
if (! -f $file) {
print STDERR "*** no such file $file in current directory\n";
return 0;
}
else {
print STDERR "... isFile $file\n" if $verbose;
return 1;
}
}
# more subs ...
1;
####
#! perl -w
use strict;
use MyModule;
# before change to OO and after
MyModule::isFile("MyModuleTest.pl");
MyModule::isFile("NotHere");
##
##
#! perl -w
use strict;
package MyModule;
sub new {
my ($class, %args) = @_;
my $self = {
class => $class,
verbose => $args{verbose} || 0,
otheropt => $args{otheropt} || 0,
};
bless $self, $class;
return $self;
}
sub isFile {
my $self = shift if ref $_[0] && ref $_[0] eq $_[0]->{class};
my $file = shift; # a file in current directory expected
if (! -f $file) {
print STDERR "*** $file: file not found in current directory\n";
return 0;
}
else {
print STDERR "... $file: file found in current directory\n" if $self->{verbose};
return 1;
}
}
# more subs ...
1;
##
##
#! perl -w
use strict;
use MyModule;
# works before change to OO and after
MyModule::isFile("MyModuleTest.pl");
MyModule::isFile("NotHere");
# works after change to OO
my $mod = MyModule->new;
$mod->isFile("MyModuleTest.pl");
$mod->isFile("NotHere");
$mod = MyModule->new( verbose => 1 );
$mod->isFile("MyModuleTest.pl");
$mod->isFile("NotHere");