#!/usr/bin/env perl use MetaCPAN::Client; use feature 'say'; my $mc = MetaCPAN::Client->new; my %commands = ( pod => sub { say $mc->pod(shift)->plain; }, url => sub { say $mc->download_url(shift)->download_url; }, describe => sub { say $mc->module(shift)->abstract; }, src => sub { say $mc->module(shift)->source; }, ); die "Usage: $0 <${\join '|',keys %commands}> [MODULE]" unless @ARGV; my $command = shift; die "No such command: $command" unless exists $commands{$command}; if (@ARGV == 0 or $ARGV[0] eq '-') { while () { chomp; next if /^$/; $commands{$command}->($_); } } else { $commands{$command}->($_) for @ARGV; }