#!/usr/bin/perl --
use strict; use warnings;
ZenTara::hello();
ZenTara::goodbye();
exit( 0 );
package ZenTara;
sub hello { print "\nHello\n"; }
sub ZenTara::goodbye { print "\nGoodbye\n" }
####
package ZenTara;
use strict; use warnings;
sub hello { print "\nHello\n"; }
sub ZenTara::goodbye { print "\nGoodbye\n" }
1; ## return true
##
##
#!/usr/bin/perl --
use strict; use warnings;
use ZenTara;
ZenTara::hello();
ZenTara::goodbye();
exit( 0 );
##
##
#!/usr/bin/perl --
use strict; use warnings;
use ZenTaraE;
hello();
ZenTaraE->new( name => "Bob" )->goodbye();
exit( 0 );
##
##
package ZenTaraE;
use strict; use warnings;
require Exporter;
our @ISA = qw/ Exporter /;
our @EXPORT = qw/ hello goodbye /; # exported by default
sub new {
my $class = shift;
return bless { @_ }, $class;
}
sub hello { print "\nHello\n"; }
sub goodbye {
my( $self ) = @_;
my $name = eval { $self->{name} } || '';
print "\nGoodbye $name\n"
}
1; ## return true
##
##
#!/usr/bin/perl --
BEGIN {
$INC{'ZenTaraEI.pm'} = __FILE__;
package ZenTaraEI;
use strict; use warnings;
require Exporter;
our @ISA = qw/ Exporter /;
our @EXPORT = qw/ hello goodbye /; # exported by default
sub new {
my $class = shift;
return bless { @_ }, $class;
}
sub hello { print "\nHello\n"; }
sub goodbye {
my( $self ) = @_;
my $name = eval { $self->{name} } || '';
print "\nGoodbye $name\n"
}
1; ## return true
}##########
use strict; use warnings;
use ZenTaraEI;
hello();
ZenTaraEI->new( name => "Bob" )->goodbye();
exit( 0 );
exit( 0 );
##
##
$ perl zen-pack.pl
Hello
Goodbye
$ perl zen-mod.pl
Hello
Goodbye
$ perl zen-mod-exp.pl
Hello
Goodbye Bob
$ perl zen-mod-exp-inlined.pl
Hello
Goodbye Bob
$