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 )