w[-json];
#~ @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;
}
GetOptions( \my %h, 'language=s', 'help' => sub { pod2usage( -exitval => 1 ) }, 'json!' => \$raw );
my $shade = Acme::Insult::Evil::insult(%h);
exit !( $shade ? say _echo($shade) : !s
SIS
evil_insult # generate a random insult
evil_insult -json # insult someone if you're a robot
evil_insult -lang fr
www.freepublicapis.com/evil-insult-generator
use v5.38;
use HTTP::Tiny;
use JSON::Tiny qw[decode_json];
use URI;
use parent 'Exporter';
our %EXPORT_TAGS = ( all => [ our @EXPOR
state $http
//= HTTP::Tiny->new( default_headers => { Accept => 'application/json' }, agent => sprintf '%s/%.2f ', __PACKAGE__, our $VERSION );
state $api //= URI->new('ht
but returns the language in a field called 'language'... why?
$api->query_form( type => 'json', ( defined $params{language} ? ( lang => delete $params{language} ) : () ), %params );
m