Skip to content

Instantly share code, notes, and snippets.

@17e
Created October 31, 2014 23:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 17e/07879edf40c70d66599d to your computer and use it in GitHub Desktop.
Save 17e/07879edf40c70d66599d to your computer and use it in GitHub Desktop.
[Moscow.pm] __PACKAGE__ namespace
use strict;
use warnings;
use 5.010;
package BasePackage;
my %STORAGE = ();
sub add {
my ($class, $key) = @_;
say "add $class <- $key";
push @{ $STORAGE{$class} }, $key;
}
sub list {
my $class = shift;
print "$class: ";
local $, = ',';
say @{ $STORAGE{$class} };
}
package FirstPackage;
our @ISA = ('BasePackage');
__PACKAGE__->add('key0');
__PACKAGE__->add('key1');
package SecondPackage;
our @ISA = ('BasePackage');
__PACKAGE__->add('key2');
__PACKAGE__->add('key3');
package main;
FirstPackage->list;
SecondPackage->list;
1;
@17e
Copy link
Author

17e commented Oct 31, 2014

anton@Currant:~$ perl /tmp/example.pl
add FirstPackage <- key0
add FirstPackage <- key1
add SecondPackage <- key2
add SecondPackage <- key3
FirstPackage: key0,key1
SecondPackage: key2,key3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment