I do not think that this is a good idea but:
The module (with a stupid name for my purposes):
package _424188;
require Exporter;
our @ISA = qw[ Exporter ];
our @EXPORT = qw[ the_mascot ];
my $data = { ANIMAL => "camel" };
sub the_mascot {
print<<"END";
Hey, did you know that Perl\'s mascot is a:
$data->{ANIMAL}
END
}
sub new {
my $class = shift;
return bless $data, $class;
}
sub animal {
my $self = shift;
$self->{ANIMAL} = $_[0];
}
sub mascot {
the_mascot();
}
1;
And a program that uses it:
#! perl -slw
use strict;
use _424188;
the_mascot();
my $obj = new _424188;
$obj->mascot;
$obj->animal( 'dromadary' );
$obj->mascot;
the_mascot();
__END__
P:\test>424188
Hey, did you know that Perl's mascot is a:
camel
Hey, did you know that Perl's mascot is a:
camel
Hey, did you know that Perl's mascot is a:
dromadary
Hey, did you know that Perl's mascot is a:
dromadary
Examine what is said, not who speaks.
Silence betokens consent.
Love the truth but pardon error.
|