|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
# This file:
# https://anggtwu.net/PERL/twopackages.pl.html
# https://anggtwu.net/PERL/twopackages.pl
# (find-angg "PERL/twopackages.pl")
# Author: Eduardo Ochs <eduardoochs@gmail.com>
#
# (find-google-links "How can I declare several perl packages in a single file")
# https://stackoverflow.com/questions/1748896/in-perl-how-do-i-put-multiple-packages-in-a-single-pm-file
# https://blogs.perl.org/users/carey_tilden/2010/10/multiple-packages-in-one-file.html
use strict;
use warnings;
use Scalar::Util 'blessed';
package Foo { sub speak { print "Hello from Foo!\n"; } }
package Bar { sub speak { print "Hello from Bar!\n"; } }
=begin comment
* (eepitch-perl)
* (eepitch-kill)
* (eepitch-perl)
do "./twopackages.pl" or die "ERROR";
Foo->speak();
Bar->speak();
=cut
package Pac1 {
sub new {
my ($class, $name) = @_;
return bless { name => $name }, $class;
}
sub get_name {
my ($self) = @_;
return $self->{name};
}
}
package PacLog2 {
sub log {
my ($class, $msg) = @_;
print "[LOG]: $msg\n";
}
}
return 1;
=begin comment
* (eepitch-perl)
* (eepitch-kill)
* (eepitch-perl)
do "./twopackages.pl" or die "ERROR";
$p = Pac1->new(3,4);
print PacLog2->($p->get_name);
print $p
print $p->{name};
print $p->get_name;
print blessed($p);
=cut