Acme-CPANAuthors-Russian
view release on metacpan or search on metacpan
examples/test.pl view on Meta::CPAN
#!/usr/bin/perl
use strict;
use lib '../lib';
use Acme::CPANAuthors;
my $a = Acme::CPANAuthors->new('Russian');
print 'Russian CPAN authors: ', $a->count, "\n";
printf "%-20s %s\n", $_, $a->name($_) for $a->id;
script/cpan-author.pl view on Meta::CPAN
qr/Zaha/,
qr/Zoffix/,
qr/Irakliy Sunguryan/,
qr/Daniil/,
qr/Anastasiya Deeva/,
qr/[а-Ñ]+/,
];
print
map { @$_ }
grep { warn scalar @$_ }
[
# for module
map { sprintf "%-9s => '%s',\n", grep { defined } @$_{'pause', 'name', 'email'} }
sort { $a->{'pause'} cmp $b->{'pause'} }
# for list
#~ map { join("\t", grep { defined } @$_{'id', 'name', 'pause', 'author', 'email', 'url'}), "\n" }
# check email
#~ map { qq{"$_->{'pause'}" $_->{'email'}\n} }
#~ grep { $_->{'email'} && $_->{'email'} !~ /CENSORED/ && $_->{'email'} !~ /\.ru$/ }
# cpan author
script/cpan-author.pl view on Meta::CPAN
my $self = shift;
unlink FILE if -e FILE && time - [stat(FILE)]->[9] > EXP;
if (my $data = eval { local $/; open my $fh, '<', FILE or die $!; <$fh> }) {
warn 'cache';
$_->request(HTTP::Request->new('GET', shift)), return $_ for HTTP::Response->new(200, 'OK', undef, $data);
}
for ($self->SUPER::get(@_)) {
open my $fh, '>', FILE or die $!;
print $fh $_->content;
return $_;
}
}
1;
__END__
=head1 NAME
script/cpan-faces.pl view on Meta::CPAN
$_
);
$_[HEAP]->{'count'}++;
}
},
result => sub {
my $name = $_[ARG0]->[1];
my $response = $_[ARG1]->[0];
unless ($response->is_redirect) {
# print qq{<a href="http://search.cpan.org/~$name/" title="@{[$a->name($name)]}"><img src="@{[$a->avatar_url($name)]}"></a>\n};
warn qq({id => '$name', name => '@{[$a->name($name)]}', avatar => '@{[$a->avatar_url($name)]}'},\n);
}
$_[KERNEL]->stop unless --$_[HEAP]->{'count'};
},
}
);
POE::Kernel->run;
( run in 1.156 second using v1.01-cache-2.11-cpan-de7293f3b23 )