Deluxe edition:
Fool.pm
package Fool {
use strict;
use warnings;
use Class::Tiny qw(hello);
use feature qw(say);
say __PACKAGE__;
1;
}
run.pl
#!/usr/bin/env perl
use strict;
use warnings;
use feature qw(say);
use Fool;
my $president = Fool->new( { hello => q(I'm a very stable genius!) } )
+;
say $0;
say __PACKAGE__;
say $president->hello();
__END__
Please see Class::Tiny for further variations.
Update: Fixed link to wrong module.
Update 2: A fellow monk asked for some more flexibility:
package President {
use strict;
use warnings;
use Class::Tiny qw(name hello);
use feature qw(say);
say __PACKAGE__;
1;
}
package Fool {
use strict;
use warnings;
use parent qw (President);
use Class::Tiny qw( steve ivanka melania barron );
use feature qw (say);
say __PACKAGE__;
sub old { shift->SUPER::new(@_) }
sub twitter { shift->SUPER::hello(@_) }
1;
}
#!/usr/bin/env perl
use strict;
use warnings;
use feature qw(say);
use Fool;
my $president = Fool->old(
{
name => q(Donald),
hello => q(I'm a very stable genius!),
steve => q(fired),
melania => q(bored),
ivanka => q(dumb as bread),
barron => q(poor boy),
}
);
say $0;
say __PACKAGE__;
say q(I'm ), $president->name;
say q(Steve is ), $president->steve;
say q(Melania is ), $president->melania;
say q(Ivanka is ), $president->ivanka;
say q(Barron is a ), $president->barron;
say $president->twitter;
say $president->twitter(q(Too many shithole countries in the world!));
say $president->twitter(q(I think i'll go to Mar-a-Lago));
__END__
Best regards, Karl
«The Crux of the Biscuit is the Apostrophe»
perl -MCrypt::CBC -E 'say Crypt::CBC->new(-key=>'kgb',-cipher=>"Blowfish")->decrypt_hex($ENV{KARL});'Help