Acme-Insult-Evil

 view release on metacpan or  search on metacpan

README.md  view on Meta::CPAN

[![Actions Status](https://github.com/sanko/Acme-Insult-Evil/actions/workflows/ci.yml/badge.svg)](https://github.com/sanko/Acme-Insult-Evil/actions) [![MetaCPAN Release](https://badge.fury.io/pl/Acme-Insult-Evil.svg)](https://metacpan.org/release/Acm...
# NAME

Acme::Insult::Evil - Programmatically Generate Evil Insults

# SYNOPSIS

```perl
use Acme::Insult::Evil qw[insult];
say insult( ); # stringify
```

# DESCRIPTION

Acme::Insult::Evil provides 'evil' 'insulting' statements generated by the RESTful Evil Insult Generator API.

# METHODS

These functions may be imported by name or with the `:all` tag.

lib/Acme/Insult/Evil.pm  view on Meta::CPAN


=encoding utf-8

=head1 NAME

Acme::Insult::Evil - Programmatically Generate Evil Insults

=head1 SYNOPSIS

    use Acme::Insult::Evil qw[insult];
    say insult( ); # stringify

=head1 DESCRIPTION

Acme::Insult::Evil provides 'evil' 'insulting' statements generated by the RESTful Evil Insult Generator API.

=head1 METHODS

These functions may be imported by name or with the C<:all> tag.

=head2 C<insult( [...] )>

script/evil_insult.pl  view on Meta::CPAN

#~ @ARGV = qw[-language fr];
#~ @ARGV = qw[-h];
#
my $raw = 0;

sub _echo ($insult) {    # JSON::Tiny is loaded in Acme::Free::Advice::Unsolicited anyway
    $raw ? JSON::Tiny::encode_json( {%$insult} ) : $insult;
}
GetOptions( \my %h, 'language=s', 'help' => sub { pod2usage( -exitval => 1 ) }, 'json!' => \$raw );
my $shade = Acme::Insult::Evil::insult(%h);
exit !( $shade ? say _echo($shade) : !say( $raw ? 'null' : '' ) );
__END__

=head1 NAME

evil_insult - Generate evil insults on the terminal

=head1 SYNOPSIS

    evil_insult                                  # generate a random insult
    evil_insult -json                            # insult someone if you're a robot



( run in 2.414 seconds using v1.01-cache-2.11-cpan-b16cb0d3907 )