Acme-Greeting
view release on metacpan or search on metacpan
lib/Acme/Greeting.pm view on Meta::CPAN
package Acme::Greeting;
use strict;
use warnings;
use v5.12.3;
use utf8;
use self;
our $VERSION = '0.0.3';
my $last = "";
sub new {
my %opt = args;
$opt{language} = "en" unless defined $opt{language};
$opt{target} = "guest" unless defined $opt{target};
my $realfile = "";
my $db = "Acme/Greeting/$opt{language}.pm";
for my $prefix (@INC) {
$realfile = "$prefix/$db";
last if (-f $realfile);
}
my @greeting = ();
my $DB;
open($DB, "<:utf8", $realfile) and do {
while (<$DB>) {
chomp;
if ( m/^=item\ (.+)$ /x ) {
push @greeting, $1;
}
}
close $DB;
};
if (@greeting == 0) {
push @greeting, __PACKAGE__ . ' says hi, $u';
}
my $greeting = $last;
while ($greeting eq $last) {
$greeting = $greeting[ int(rand(@greeting)) ];
$greeting =~ s/\$u/$opt{target}/g;
}
$last = $greeting;
return $greeting;
}
"Greeting";
__END__
=head1 NAME
Acme::Greeting - Greeting from Perl.
=head1 VERSION
This document describes Acme::Greeting version 0.0.1
=head1 SYNOPSIS
use Acme::Greeting;
Acme::Greeting->new(); # "Hello, guest"
=head1 DESCRIPTION
This module generates greeting messages in several languages.
=head1 INTERFACE
=over
=item new(%opt)
Generates a new greeting message. Return a string. %opt hash
can have these values:
B<language>, to specify the language of this greeting message. Default
is C<"en">.
B<target>, to specify the greeting target. Default is C<"guest">.
( run in 0.600 second using v1.01-cache-2.11-cpan-63c85eba8c4 )