Acme-Insult
view release on metacpan or search on metacpan
lib/Acme/Insult.pm view on Meta::CPAN
package Acme::Insult 1.1 {
use v5.38;
use parent 'Exporter';
use Module::Load;
our %EXPORT_TAGS = ( all => [ our @EXPORT_OK = qw[insult flavors] ] );
#
my %flavor = (
map {
my $pkg = 'Acme::Insult::' . $_;
( eval 'require ' . $pkg ? ( lc($_) => $pkg ) : () ),
} qw[Glax Evil Pirate]
);
sub insult ( $flavor //= ( keys %flavor )[ rand keys %flavor ] ) {
$flavor{$flavor} // return ();
my $cv = $flavor{$flavor}->can('insult');
$cv ? $cv->() : ();
}
( run in 1.581 second using v1.01-cache-2.11-cpan-49f99fa48dc )