view release on metacpan or search on metacpan
t/00_diag.t view on Meta::CPAN
my $pm = "$module.pm";
$pm =~ s{::}{/}g;
if(eval { require $pm; 1 })
{
my $ver = eval { $module->VERSION };
$ver = 'undef' unless defined $ver;
diag sprintf $format, $module, $ver;
}
else
{
diag sprintf $format, $module, '-';
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/AllThePerlIsAStage.pm view on Meta::CPAN
my_set_at_global my_set_at_run my_set_at_begin my_set_at_unitcheck my_set_at_check my_set_at_init my_set_at_end my_set_at_init_and_run
our_set_at_global our_set_at_run our_set_at_begin our_set_at_unitcheck our_set_at_check our_set_at_init our_set_at_end our_set_at_init_and_run
)
) {
no strict 'refs'; ## no critic
my $val = defined ${$var} ? "'${$var}'" : 'undef() (i.e. not initialized at this point)';
my $spacing = " " x ( 22 - length($var) );
print "\t\$$var$spacing is $val\n";
}
print "\n";
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/Archive/Mbox.pm view on Meta::CPAN
my %attr;
my $contents = read_file($name, err_mode => 'carp', binmode => ':raw');
return unless $contents;
my (undef, undef, $mode, undef, $uid, $gid, undef, undef, undef, $mtime) = stat $name;
$attr{mode} = $mode & 0777;
$attr{uid} = $uid;
$attr{gid} = $gid;
$attr{mtime} = $mtime;
view all matches for this distribution
view release on metacpan or search on metacpan
examples/camel view on Meta::CPAN
camel1hump){chomp;$Camel=$_;y/LJF7\173\175`\047/\061\062\063\
064\065\066\067\070/;y/12345678/JL7F\175\173\047`/;$_=reverse;
print"$_\040$Camel\n";}foreach(@camel1hump){chomp;$Camel=$_;y
/LJF7\173\175`\047/12345678/;y/12345678/JL7F\175\173\0 47`/;
$_=reverse;print"\040$_$Camel\n";}';;s/\s*//g;;eval; eval
("seek\040DATA,0,0;");undef$/;$_=<DATA>;s/\s*//g;( );;s
;^.*_;;;map{eval"print\"$_\"";}/.{4}/g; __DATA__ \124
\1 50\145\040\165\163\145\040\157\1 46\040\1 41\0
40\143\141 \155\145\1 54\040\1 51\155\ 141
\147\145\0 40\151\156 \040\141 \163\16 3\
157\143\ 151\141\16 4\151\1 57\156
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/AsciiArtinator.pm view on Meta::CPAN
$DEBUG = 1;
}
if (defined $opts{"art_file"}) {
my $fh;
local $/ = undef;
open($fh, "<", $opts{"art_file"}) || croak "Invalid art_file specification: $!\n";
$PIC = <$fh>;
close $fh;
} elsif (defined $opts{"art_string"}) {
$PIC = $opts{"art_string"};
lib/Acme/AsciiArtinator.pm view on Meta::CPAN
}
$Acme::AsciiArtinator::PIC = $PIC;
if (defined $opts{"code_file"}) {
my $fh;
local $/ = undef;
open($fh, "<", $opts{"code_file"}) || croak "Invalid code_file specification: $!\n";
$CODE = <$fh>;
close $fh;
} elsif ($opts{"code_string"}) {
$CODE = $opts{"code_string"};
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/AutoLoad.pm view on Meta::CPAN
require Cwd;
$lib = Cwd::abs_path($lib);
};
}
push @INC, $lib, $hook if $hook;
$hook = undef;
return \&ignore;
}
sub mkbase {
my $path = shift;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/AutoloadAll.pm view on Meta::CPAN
my $package = shift || 'main';
my $seen = shift || {};
# remove last ::
$package =~ s/::$//;
return undef if (exists($seen->{$package}));
print STDERR "Searching '$function' in '$package'...\n" if ($DEBUG);
# check if the current package has the function
my $sub = $package->can($function);
lib/Acme/AutoloadAll.pm view on Meta::CPAN
$sub = find_function($function, $pkg, $seen);
return $sub if (ref($sub) eq 'CODE');
}
# not found
return undef;
}
sub UNIVERSAL::AUTOLOAD {
(my $function = $UNIVERSAL::AUTOLOAD) =~ s/.*:://;
my $sub = find_function($function);
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/BOPE.pm view on Meta::CPAN
s{\bfati(?:a|ou)\b}{split}gi;
s{\bpass(?:a|ou)\b}{next}gi;
s{\bpede pra sair\b}{die}gi;
s{\b(?:eu )?desisto\b}{exit}gi;
s{\bdesistiu\b}{= undef}gi;
s{\bbota na conta do papa\b}{exit}gi;
s{\be\b}{and}gi;
s{\b(?:ent[ãa]o\s+)?senta o dedo nessa porra\b}{print "Caveira meu capitao!"}gi;
lib/Acme/BOPE.pm view on Meta::CPAN
}
else {
print "Caveira, meu capitao!\n" and exit;
warn "vai morrer gente";
$_01 = undef;
}
Você ainda pode dar o comando para ouvir seu pelotão...quer dizer, seu programa... cantar um dos famosos hinos do BOPE:
Pelotão, cantar hino!
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/BeyondPerl/ToSQL.pm view on Meta::CPAN
# Use From Objects
##############################################################################
sub _calc_by_rdbm {
if($DEBUG){ print "$_[0]\n"; }
_float_handler( undef, $Dbh->selectrow_array($_[0]) );
}
sub _nomethod {
my ($x, $y, $swap, $op) = @_;
view all matches for this distribution
view release on metacpan or search on metacpan
Sets all bits within the `size` to 1.
## `find_missing( )`
Returns the index of the first bit set to 0, or `undef` if all bits are set.
## `inverse( )`
Returns a new bitfield object with all bits within the `size` inverted. Bit 0 becomes 1, and 1 becomes 0.
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/AutoInstall.pm view on Meta::CPAN
$file =~ s|::|/|g;
$file .= '.pm';
local $@;
return eval { require $file; $mod->VERSION } || ( $@ ? undef: 0 );
}
# Load CPAN.pm and it's configuration
sub _load_cpan {
return if $CPAN::VERSION;
inc/Module/AutoInstall.pm view on Meta::CPAN
version->can('new')
) {
# use version.pm if it is installed.
return (
( version->new($cur) >= version->new($min) ) ? $cur : undef );
}
elsif ( $Sort::Versions::VERSION or defined( _load('Sort::Versions') ) )
{
# use Sort::Versions as the sorting algorithm for a.b.c versions
return ( ( Sort::Versions::versioncmp( $cur, $min ) != -1 )
? $cur
: undef );
}
warn "Cannot reliably compare non-decimal formatted versions.\n"
. "Please install version.pm or Sort::Versions.\n";
}
# plain comparison
local $^W = 0; # shuts off 'not numeric' bugs
return ( $cur >= $min ? $cur : undef );
}
# nothing; this usage is deprecated.
sub main::PREREQ_PM { return {}; }
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/BloodType.pm view on Meta::CPAN
my ($class, $init) = @_;
my $self = {};
if (defined $init && defined $init->{'genotype'}) {
return undef unless $geno_pheno->{ $init->{'genotype'} };
$self->{'genotype'} = $init->{'genotype'};
} elsif (defined $init && defined $init->{'phenotype'}) {
my @possible = grep { $geno_pheno->{$_} eq $init->{'phenotype'} } keys %$geno_pheno;
return undef unless @possible;
$self->{'genotype'} = $possible[rand @possible];
} else {
my @possible = keys %$geno_pheno;
$self->{'genotype'} = $possible[rand @possible];
}
view all matches for this distribution
view release on metacpan or search on metacpan
t/000-report-versions-tiny.t view on Meta::CPAN
diag("${module}: $@");
$pmver = 'died during VERSION check.';
} elsif (defined $version) {
$pmver = "$version";
} else {
$pmver = '<undef>';
}
}
# So, we should be good, right?
return sprintf('%-45s => %-10s%-15s%s', $module, $pmver, $wanted, "\n");
view all matches for this distribution
view release on metacpan or search on metacpan
}
sub READLINE {
my $class = shift;
if ($class->{end} >= length(${ $class->{data} })) {
return undef;
}
my $recsep = $/;
my $rod = substr(${ $class->{data} }, $class->{end}, -1);
$rod =~ m/^(.*)$recsep{0,1}/; # use 0,1 for line sep to include possible no \n on last line
my $line = $1 . $recsep;
my $class = shift;
if (-e $class->{tmpfile}) {
$class->{fh}->close();
unlink $class->{tmpfile} or warn $!;
}
$class = undef;
1;
}
sub DESTROY {
my $class = shift;
if (-e $class->{tmpfile}) {
unlink $class->{tmpfile} or warn $!;
}
$class = undef;
1;undef $class;
}
view all matches for this distribution
view release on metacpan or search on metacpan
Buckaroo.pm view on Meta::CPAN
my @translate_array = ();
my $this_elem = "";
$counter = 1;
foreach $this_elem (@in_array)
{
if (!($this_elem)) { print("Found undefined elem, counter=$counter.\n"); $counter++; next; }
my $ascii_num = $xlate_2_hash{$this_elem} || 0;
my $to_char = pack("c", $ascii_num);
printf("Normalized >>%s<<, ascii_num=>>%s<<, char=>>%s<<, counter=>>%s<<\n", $this_elem, $ascii_num, $to_char, $counter) if $debug_mode;
push(@translate_array, $to_char);
$counter++;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/Buffalo/Buffalo.pm view on Meta::CPAN
our @EXPORT = qw(Buffalo buffalo);
our $VERSION = '0.01';
sub Buffalo (@) { $_[0] eq 'buffalo' ? 'buffalo' : undef; }
sub buffalo { return 'buffalo'; }
=head1 NAME
Acme::Buffalo::Buffalo - Perl extension to buffalo buffalo
lib/Acme/Buffalo/Buffalo.pm view on Meta::CPAN
Both are exported by default.
=head2 Buffalo
Accepts an array. Returns 'buffalo' if first argument is 'buffalo', otherwise
undef.
=head2 buffalo
Returns 'buffalo'.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/Buga.pm view on Meta::CPAN
use constant BUGA_LIST => [qw/Buga bUga buGa BugA buga BUGA BUga buGA/];
use constant OCTALS => {map{ BUGA_LIST->[$_] => $_ } 0 .. 7};
sub new {
my $class = shift;
my $args = (@_ % 2 == 0) ? {@_} : undef;
return bless {_value => $args->{value} || undef}, $class;
}
# accessors
sub base8 {
return Convert::BaseN->new( base => 8 );
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/AutoInstall.pm view on Meta::CPAN
{
print "missing." . ( $arg ? " (would need $arg)" : '' ) . "\n";
}
else
{
# no need to check $arg as _version_cmp ($cur, undef) would satisfy >= above
print "too old. ($cur < $arg)\n";
}
push @required, $mod => $arg;
}
inc/Module/AutoInstall.pm view on Meta::CPAN
$file =~ s|::|/|g;
$file .= '.pm';
local $@;
return eval { require $file; $mod->VERSION } || ( $@ ? undef: 0 );
}
# Load CPAN.pm and it's configuration
sub _load_cpan {
return if $CPAN::VERSION and $CPAN::Config and not @_;
view all matches for this distribution
view release on metacpan or search on metacpan
t/000-report-versions.t view on Meta::CPAN
return $class->_error( "File '$file' does not exist" ) unless -e $file;
return $class->_error( "'$file' is a directory, not a file" ) unless -f _;
return $class->_error( "Insufficient permissions to read '$file'" ) unless -r _;
# Slurp in the file
local $/ = undef;
local *CFG;
unless ( open(CFG, $file) ) {
return $class->_error("Failed to open file '$file': $!");
}
my $contents = <CFG>;
t/000-report-versions.t view on Meta::CPAN
# Do we have a document header?
if ( $lines[0] =~ /^---\s*(?:(.+)\s*)?\z/ ) {
# Handle scalar documents
shift @lines;
if ( defined $1 and $1 !~ /^(?:\#.+|\%YAML[: ][\d\.]+)\z/ ) {
push @$self, $self->_read_scalar( "$1", [ undef ], \@lines );
next;
}
}
if ( ! @lines or $lines[0] =~ /^(?:---|\.\.\.)/ ) {
# A naked document
push @$self, undef;
while ( @lines and $lines[0] !~ /^---/ ) {
shift @lines;
}
} elsif ( $lines[0] =~ /^\s*\-/ ) {
t/000-report-versions.t view on Meta::CPAN
my ($self, $string, $indent, $lines) = @_;
# Trim trailing whitespace
$string =~ s/\s*\z//;
# Explitic null/undef
return undef if $string eq '~';
# Quotes
if ( $string =~ /^\'(.*?)\'\z/ ) {
return '' unless defined $1;
$string = $1;
t/000-report-versions.t view on Meta::CPAN
$self->_read_hash( $array->[-1], [ @$indent, $indent2 ], $lines );
} elsif ( $lines->[0] =~ /^\s*\-(\s*)(.+?)\s*\z/ ) {
# Array entry with a value
shift @$lines;
push @$array, $self->_read_scalar( "$2", [ @$indent, undef ], $lines );
} elsif ( $lines->[0] =~ /^\s*\-\s*\z/ ) {
shift @$lines;
unless ( @$lines ) {
push @$array, undef;
return 1;
}
if ( $lines->[0] =~ /^(\s*)\-/ ) {
my $indent2 = length("$1");
if ( $indent->[-1] == $indent2 ) {
# Null array entry
push @$array, undef;
} else {
# Naked indenter
push @$array, [ ];
$self->_read_array( $array->[-1], [ @$indent, $indent2 ], $lines );
}
t/000-report-versions.t view on Meta::CPAN
my $key = $1;
# Do we have a value?
if ( length $lines->[0] ) {
# Yes
$hash->{$key} = $self->_read_scalar( shift(@$lines), [ @$indent, undef ], $lines );
} else {
# An indent
shift @$lines;
unless ( @$lines ) {
$hash->{$key} = undef;
return 1;
}
if ( $lines->[0] =~ /^(\s*)-/ ) {
$hash->{$key} = [];
$self->_read_array( $hash->{$key}, [ @$indent, length($1) ], $lines );
} elsif ( $lines->[0] =~ /^(\s*)./ ) {
my $indent2 = length("$1");
if ( $indent->[-1] >= $indent2 ) {
# Null hash entry
$hash->{$key} = undef;
} else {
$hash->{$key} = {};
$self->_read_hash( $hash->{$key}, [ @$indent, length($1) ], $lines );
}
}
t/000-report-versions.t view on Meta::CPAN
}
# Set error
sub _error {
$YAML::Tiny::errstr = $_[1];
undef;
}
# Retrieve error
sub errstr {
$YAML::Tiny::errstr;
t/000-report-versions.t view on Meta::CPAN
};
if ( $@ ) {
# Failed to load Scalar::Util
eval <<'END_PERL';
sub refaddr {
my $pkg = ref($_[0]) or return undef;
if (!!UNIVERSAL::can($_[0], 'can')) {
bless $_[0], 'Scalar::Util::Fake';
} else {
$pkg = undef;
}
"$_[0]" =~ /0x(\w+)/;
my $i = do { local $^W; hex $1 };
bless $_[0], $pkg if defined $pkg;
$i;
t/000-report-versions.t view on Meta::CPAN
next;
}
local $SIG{__WARN__} = sub { note "$module: $_[0]" };
require_ok $module or BAIL_OUT("can't load $module");
my $version = $module->VERSION;
$version = 'undefined' unless defined $version;
diag(" $module version is $version");
}
done_testing;
}
view all matches for this distribution
view release on metacpan or search on metacpan
examples/templates/t/10cpanauthor.t view on Meta::CPAN
SKIP: {
my $file;
eval { $file = Acme::CPANAuthors::Utils::_cpan_authors_file() };
skip "CPAN configuration not available", 4 if($@ || !$file);
$file = undef;
eval { $file = Acme::CPANAuthors::Utils::_cpan_packages_file() };
skip "CPAN configuration not available", 4 if($@ || !$file);
my @distros = $authors->distributions('[% TOPDOG %]');
cmp_ok( ~~@distros, ">", 0, " .. \$authors->distributions('[% TOPDOG %]') gives a non-empty list" );
view all matches for this distribution
view release on metacpan or search on metacpan
t/10british.t view on Meta::CPAN
SKIP: {
my $file;
eval { $file = Acme::CPANAuthors::Utils::_cpan_authors_file() };
skip "CPAN configuration not available", 5 if($@ || !$file);
$file = undef;
eval { $file = Acme::CPANAuthors::Utils::_cpan_packages_file() };
skip "CPAN configuration not available", 5 if($@ || !$file);
my @distros = $authors->distributions('BARBIE');
cmp_ok( ~~@distros, ">", 0, " .. \$authors->distributions('BARBIE') gives a non-empty list" );
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/CPANAuthors/CPAN/MostScripts.pm view on Meta::CPAN
our $DATE = '2021-11-17'; # DATE
our $DIST = 'Acme-CPANAuthors-CPAN-MostScripts'; # DIST
our $VERSION = '0.005'; # VERSION
use Acme::CPANAuthors::Register (
"PERLANCAR" => undef, # 1436
"RSAVAGE" => undef, # 302
"TULAMILI" => undef, # 224
"BDFOY" => undef, # 176
"TRIZEN" => undef, # 173
"JWB" => undef, # 166
"SANTEX" => undef, # 140
"MRDVT" => undef, # 140
"SHLOMIF" => undef, # 138
"VVELOX" => undef, # 137
"OLIVER" => undef, # 103
"LDS" => undef, # 101
"TSIBLEY" => undef, # 95
"LEOCHARRE" => undef, # 88
"CMUNGALL" => undef, # 87
"RDO" => undef, # 75
"EASR" => undef, # 72
"GSG" => undef, # 69
"AMBS" => undef, # 68
"BPOSTLE" => undef, # 63
"INGY" => undef, # 61
"IVANWILLS" => undef, # 58
"TBONE" => undef, # 57
"TIEDEMANN" => undef, # 56
"MOOCOW" => undef, # 53
"BRYCE" => undef, # 53
"WOLDRICH" => undef, # 52
"NKH" => undef, # 50
"KESTEB" => undef, # 50
"CORION" => undef, # 49
"PLICEASE" => undef, # 48
"GROUSSE" => undef, # 48
"DHARD" => undef, # 46
"DBAURAIN" => undef, # 46
"YSAS" => undef, # 44
"PERRAD" => undef, # 44
"BEATNIK" => undef, # 44
"MTW" => undef, # 43
"MSIMERSON" => undef, # 43
"AJPAGE" => undef, # 43
"GWILLIAMS" => undef, # 41
"CJFIELDS" => undef, # 41
"VOJ" => undef, # 40
"JILLROWE" => undef, # 40
"TAPPER" => undef, # 39
"JASONS" => undef, # 39
"ADAMK" => undef, # 39
"JMACFARLA" => undef, # 38
"GETTY" => undef, # 38
"CDOLAN" => undef, # 38
);
1;
# ABSTRACT: Authors with the most number of scripts on CPAN
view all matches for this distribution
view release on metacpan or search on metacpan
examples/templates/t/10cpanauthor.t view on Meta::CPAN
SKIP: {
my $file;
eval { $file = Acme::CPANAuthors::Utils::_cpan_authors_file() };
skip "CPAN configuration not available", 4 if($@ || !$file);
$file = undef;
eval { $file = Acme::CPANAuthors::Utils::_cpan_packages_file() };
skip "CPAN configuration not available", 4 if($@ || !$file);
my @distros = $authors->distributions('[% TOPDOG %]');
cmp_ok( ~~@distros, ">", 0, " .. \$authors->distributions('[% TOPDOG %]') gives a non-empty list" );
view all matches for this distribution
view release on metacpan or search on metacpan
t/00-report-prereqs.t view on Meta::CPAN
use ExtUtils::MakeMaker;
use File::Spec;
# from $version::LAX
my $lax_version_re =
qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )?
|
(?:\.[0-9]+) (?:_[0-9]+)?
) | (?:
v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )?
|
t/00-report-prereqs.t view on Meta::CPAN
$file =~ s{::}{/}g;
$file .= ".pm";
my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC;
my $want = $req_hash->{$phase}{$type}{$mod};
$want = "undef" unless defined $want;
$want = "any" if !$want && $want == 0;
my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required";
if ($prefix) {
my $have = MM->parse_version( File::Spec->catfile($prefix, $file) );
$have = "undef" unless defined $have;
push @reports, [$mod, $want, $have];
if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) {
if ( $have !~ /\A$lax_version_re\z/ ) {
push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)";
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# releases once we can make sure it won't clash with custom
# Module::Install extensions.
$VERSION = '1.21';
# Storage for the pseudo-singleton
$MAIN = undef;
*inc::Module::Install::VERSION = *VERSION;
@inc::Module::Install::ISA = __PACKAGE__;
}
inc/Module/Install.pm view on Meta::CPAN
defined $_[0]
and
! ref $_[0]
and
$_[0] =~ m/^[^\W\d]\w*(?:::\w+)*\z/s
) ? $_[0] : undef;
}
1;
# Copyright 2008 - 2012 Adam Kennedy.
view all matches for this distribution
view release on metacpan or search on metacpan
t/000-report-versions-tiny.t view on Meta::CPAN
diag("${module}: $@");
$pmver = 'died during VERSION check.';
} elsif (defined $version) {
$pmver = "$version";
} else {
$pmver = '<undef>';
}
}
# So, we should be good, right?
return sprintf('%-45s => %-10s%-15s%s', $module, $pmver, $wanted, "\n");
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
defined $_[0]
and
! ref $_[0]
and
$_[0] =~ m/^[^\W\d]\w*(?:::\w+)*$/s
) ? $_[0] : undef;
}
1;
# Copyright 2008 Adam Kennedy.
view all matches for this distribution
view release on metacpan or search on metacpan
t/10inmemoriam.t view on Meta::CPAN
SKIP: {
my $file;
eval { $file = Acme::CPANAuthors::Utils::_cpan_authors_file() };
skip "CPAN configuration not available", 4 if($@ || !$file);
$file = undef;
eval { $file = Acme::CPANAuthors::Utils::_cpan_packages_file() };
skip "CPAN configuration not available", 4 if($@ || !$file);
my @distros = $authors->distributions('IVORW');
cmp_ok( ~~@distros, ">", 0, " .. \$authors->distributions('IVORW') gives a non-empty list" );
view all matches for this distribution
view release on metacpan or search on metacpan
t/00-report-prereqs.t view on Meta::CPAN
$file =~ s{::}{/}g;
$file .= ".pm";
my ($prefix) = grep { -e catfile( $_, $file ) } @INC;
if ($prefix) {
my $ver = MM->parse_version( catfile( $prefix, $file ) );
$ver = "undef" unless defined $ver; # Newer MM should do this anyway
push @reports, [ $ver, $mod ];
}
else {
push @reports, [ "missing", $mod ];
}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/CPANAuthors.pm view on Meta::CPAN
objects for the author of the id.
=head2 avatar_url
returns gravatar url of the id shown at search.cpan.org
(or undef if you don't have L<Gravatar::URL>).
See L<http://site.gravatar.com/site/implement> for details.
=head2 kwalitee
view all matches for this distribution