view release on metacpan or search on metacpan
# You can see the character information.
my @characters = $hidamari->characters;
# You can build a Hidamari-apartment.
my $apartment = $hidamari->apartment;
# You can knock on the room.
my $yuno = $apartment->knock(201);
# You can change the year.
$hidamari->year('second');
$apartment = $hidamari->apartment;
# You also meet Sae and Hiro.
my $hiro = $apartment->knock(101);
my $sae = $apartment->knock(102);
# DESCRIPTION
Hidamari Sketch is a Japanese manga that are loved by many people.
my @characters = $hidamari->characters;
## apartment
my $apartment = $hidamari->apartment;
my $yuno = $apartment->knock(201);
## year
my $year = $hidamari->year('second');
# SEE ALSO
- Hidamari Sketch (Wikipedia - ja)
http://ja.wikipedia.org/wiki/%E3%81%B2%E3%81%A0%E3%81%BE%E3%82%8A%E3%82%B9%E3%82%B1%E3%83%83%E3%83%81
- Hidamari Sketch (Wikipedia - en)
http://en.wikipedia.org/wiki/Hidamari\_Sketch
eg/apartment.pl view on Meta::CPAN
printf $apartment->knock(202)->{name_ja} . "\n";
printf $apartment->knock(203)->{name_ja} . "\n";
printf $apartment->knock(101)->{name_ja} . "\n";
printf $apartment->knock(103)->{name_ja} . "\n";
# åå¨ããªãé¨å±ã¯ããã¯ã§ããªããï¼
# $apartment->knock(104);
# æ²è±ããã¨ãããããããªãï¼
# ãªãæéãæ»ãã¾ããã
$hidamari->year('second');
$apartment = $hidamari->apartment;
# ããã§æ²è±ããã¨ããããã«ãä¼ãã¾ã
printf "\n[ 2å¹´ç® ]\n";
printf $apartment->knock(201)->{name_ja} . "\n";
printf $apartment->knock(202)->{name_ja} . "\n";
printf $apartment->knock(203)->{name_ja} . "\n";
printf $apartment->knock(101)->{name_ja} . "\n";
printf $apartment->knock(102)->{name_ja} . "\n";
printf $apartment->knock(103)->{name_ja} . "\n";
eg/characters.pl view on Meta::CPAN
my $name = $character->{name_ja} ? $character->{name_ja} : "undef";
my $birthday = $character->{birthday} ? $character->{birthday} : "undef";
my $sign = $character->{sign} ? $character->{sign} : "undef";
my $color = $character->{color} ? $character->{color} : "undef";
printf "name: " . $name . "\n";
printf "birthday: " . $birthday . "\n";
printf "sign: " . $sign . "\n";
printf "color: " . $color . "\n";
printf "room_number:\n{\n";
my $room_number = $character->{room_number};
for my $year (qw/before first second third/) {
if (defined $room_number->{$year}) {
printf ' ' . $year . ': ' . $room_number->{$year} . "\n";
}
else {
printf ' ' . $year . ": undef\n";
};
}
printf "}\n";
}
lib/Acme/HidamariSketch.pm view on Meta::CPAN
Nori
Nazuna
Matsuri
Riri
Misato
);
my %year = (
before => 0, # åå¹´ (ãã®å
¥å¦å)
first => 1, # 1å¹´ç® (ãã®å
¥å¦)
second => 2, # 2å¹´ç®
third => 3, # 3å¹´ç® (ç¾å¨)
);
my $SINGLETON;
sub new {
if ($SINGLETON) {
return $SINGLETON;
}
lib/Acme/HidamariSketch.pm view on Meta::CPAN
# You can see the character information.
my @characters = $hidamari->characters;
# You can build a Hidamari-apartment.
my $apartment = $hidamari->apartment;
# You can knock on the room.
my $yuno = $apartment->knock(201);
# You can change the year.
$hidamari->year('second');
$apartment = $hidamari->apartment;
# You also meet Sae and Hiro.
my $hiro = $apartment->knock(101);
my $sae = $apartment->knock(102);
=head1 DESCRIPTION
Hidamari Sketch is a Japanese manga that are loved by many people.
lib/Acme/HidamariSketch.pm view on Meta::CPAN
my @characters = $hidamari->characters;
=head2 apartment
my $apartment = $hidamari->apartment;
my $yuno = $apartment->knock(201);
=head2 year
my $year = $hidamari->year('second');
=head1 SEE ALSO
=over 4
=item Hidamari Sketch (Wikipedia - ja)
http://ja.wikipedia.org/wiki/%E3%81%B2%E3%81%A0%E3%81%BE%E3%82%8A%E3%82%B9%E3%82%B1%E3%83%83%E3%83%81
=item Hidamari Sketch (Wikipedia - en)
lib/Acme/HidamariSketch/Hiro.pm view on Meta::CPAN
our $VERSION = '0.05';
sub info {
return (
name_ja => 'ãã',
name_en => 'hiro',
nickname => 'ãã',
birthday => '6/15',
voice_by => 'å¾è¤ éå',
room_number => {before => 203, first => 101, second => 101, third => undef},
sign => 'åå座',
color => '#FFC0CB', # ãã³ã¯
course => 'ç¾è¡ç§',
);
}
1;
lib/Acme/HidamariSketch/Matsuri.pm view on Meta::CPAN
our $VERSION = '0.05';
sub info {
return (
name_ja => 'èé',
name_en => 'matsuri',
nickname => undef,
birthday => undef,
voice_by => undef,
room_number => {before => undef, first => undef, second => undef, third => 101},
sign => undef,
color => undef,
course => 'ç¾è¡ç§',
);
}
1;
lib/Acme/HidamariSketch/Misato.pm view on Meta::CPAN
our $VERSION = '0.05';
sub info {
return (
name_ja => 'ã¿ãã¨',
name_en => 'misato',
nickname => undef,
birthday => undef,
voice_by => 'å°æ¸
æ°´ äºç¾',
room_number => {before => 201, first => undef, second => undef, third => undef},
sign => undef,
color => undef,
course => 'ç¾è¡ç§',
);
}
1;
lib/Acme/HidamariSketch/Miyako.pm view on Meta::CPAN
our $VERSION = '0.05';
sub info {
return (
name_ja => 'å®®å',
name_en => 'miyako',
nickname => 'å®®ã¡ãã',
birthday => '10/10',
voice_by => 'æ°´æ© ããã',
room_number => {before => undef, first => 202, second => 202, third => 202},
sign => '天秤座',
color => '#FFFF00', # ã¤ã¨ãã¼
course => 'ç¾è¡ç§',
);
}
1;
lib/Acme/HidamariSketch/Nazuna.pm view on Meta::CPAN
our $VERSION = '0.05';
sub info {
return (
name_ja => 'ãªããª',
name_en => 'nazuna',
nickname => 'ãªããªæ®¿',
birthday => '1/7',
voice_by => 'å°è¦å· åæ',
room_number => {before => undef, first => undef, second => 203, third => 203},
sign => 'å±±ç¾åº§',
color => '#F5F5F5', # ãã¯ã¤ã
course => 'æ®éç§',
);
}
1;
lib/Acme/HidamariSketch/Nori.pm view on Meta::CPAN
our $VERSION = '0.05';
sub info {
return (
name_ja => 'ä¹è',
name_en => 'nori',
nickname => qw/ã®ãã£ãº ããªã¹ã± ããªã³ãã/,
birthday => '2/6',
voice_by => 'åç° ã²ã¨ã¿',
room_number => {before => undef, first => undef, second => 103, third => 103},
sign => 'æ°´ç¶åº§',
color => '#89CEEB', # ãã«ã¼
course => 'ç¾è¡ç§',
);
}
1;
lib/Acme/HidamariSketch/Riri.pm view on Meta::CPAN
our $VERSION = '0.05';
sub info {
return (
name_ja => 'ãªãª',
name_en => 'riri',
nickname => undef,
birthday => undef,
voice_by => 'ç½ç³ æ¶¼å',
room_number => {before => 101, first => undef, second => undef, third => undef},
sign => undef,
color => undef,
course => 'ç¾è¡ç§',
);
}
1;
lib/Acme/HidamariSketch/Sae.pm view on Meta::CPAN
our $VERSION = '0.05';
sub info {
return (
name_ja => 'æ²è±',
name_en => 'sae',
nickname => 'ãã',
birthday => '11/3',
voice_by => 'æ°è°· è¯å',
room_number => {before => 102, first => 102, second => 102, third => undef},
sign => 'è 座',
color => '#800080', # ãã¼ãã«
course => 'ç¾è¡ç§',
);
}
1;
lib/Acme/HidamariSketch/Yuno.pm view on Meta::CPAN
our $VERSION = '0.05';
sub info {
return (
name_ja => 'ãã®',
name_en => 'yuno',
nickname => 'ãã®ã£ã¡',
birthday => '5/5',
voice_by => 'é¿æ¾ ä½³å¥',
room_number => {before => undef, first => 201, second => 201, third => 201},
sign => 'å°æåº§',
color => '#FFA500', # ãªã¬ã³ã¸
course => 'ç¾è¡ç§',
);
}
1;
t/02_characters.t view on Meta::CPAN
is $characters[0]->{name_en}, 'yuno';
is $characters[0]->{nickname}, 'ãã®ã£ã¡';
is $characters[0]->{voice_by}, 'é¿æ¾ ä½³å¥';
is $characters[0]->{birthday}, '5/5';
is $characters[0]->{sign}, 'å°æåº§';
is $characters[0]->{color}, '#FFA500';
is_deeply
$characters[0]->{room_number}, {
before => undef,
first => 201,
second => 201,
third => 201,
}
;
};
subtest 'å®®å' => sub {
is $characters[1]->{name_ja}, 'å®®å';
is $characters[1]->{name_en}, 'miyako';
is $characters[1]->{nickname}, 'å®®ã¡ãã';
is $characters[1]->{voice_by}, 'æ°´æ© ããã';
is $characters[1]->{birthday}, '10/10';
is $characters[1]->{sign}, '天秤座';
is $characters[1]->{color}, '#FFFF00';
is_deeply
$characters[1]->{room_number}, {
before => undef,
first => 202,
second => 202,
third => 202,
}
;
};
subtest 'ãã' => sub {
is $characters[2]->{name_ja}, 'ãã';
is $characters[2]->{name_en}, 'hiro';
is $characters[2]->{nickname}, 'ãã';
is $characters[2]->{voice_by}, 'å¾è¤ éå';
is $characters[2]->{birthday}, '6/15';
is $characters[2]->{sign}, 'åå座';
is $characters[2]->{color}, '#FFC0CB';
is_deeply
$characters[2]->{room_number}, {
before => 203,
first => 101,
second => 101,
third => undef,
}
;
};
subtest 'æ²è±' => sub {
is $characters[3]->{name_ja}, 'æ²è±';
is $characters[3]->{name_en}, 'sae';
is $characters[3]->{nickname}, 'ãã';
is $characters[3]->{voice_by}, 'æ°è°· è¯å';
is $characters[3]->{birthday}, '11/3';
is $characters[3]->{sign}, 'è 座';
is $characters[3]->{color}, '#800080';
is_deeply
$characters[3]->{room_number}, {
before => 102,
first => 102,
second => 102,
third => undef,
}
;
};
subtest 'ä¹è' => sub {
is $characters[4]->{name_ja}, 'ä¹è';
is $characters[4]->{name_en}, 'nori';
eq_array $characters[4]->{nickname}, qw/ã®ãã£ãº ããªã¹ã± ããªã³ãã/;
is $characters[4]->{voice_by}, 'åç° ã²ã¨ã¿';
is $characters[4]->{birthday}, '2/6';
is $characters[4]->{sign}, 'æ°´ç¶åº§';
is $characters[4]->{color}, '#89CEEB';
is_deeply
$characters[4]->{room_number}, {
before => undef,
first => undef,
second => 103,
third => 103,
}
;
};
subtest 'ãªããª' => sub {
is $characters[5]->{name_ja}, 'ãªããª';
is $characters[5]->{name_en}, 'nazuna';
is $characters[5]->{nickname}, 'ãªããªæ®¿';
is $characters[5]->{voice_by}, 'å°è¦å· åæ';
is $characters[5]->{birthday}, '1/7';
is $characters[5]->{sign}, 'å±±ç¾åº§';
is $characters[5]->{color}, '#F5F5F5';
is_deeply
$characters[5]->{room_number}, {
before => undef,
first => undef,
second => 203,
third => 203,
}
;
};
subtest 'èé' => sub {
is $characters[6]->{name_ja}, 'èé';
is $characters[6]->{name_en}, 'matsuri';
is $characters[6]->{nickname}, undef;
is $characters[6]->{voice_by}, undef;
is $characters[6]->{birthday}, undef;
is $characters[6]->{sign}, undef;
is $characters[6]->{color}, undef;
is_deeply
$characters[6]->{room_number}, {
before => undef,
first => undef,
second => undef,
third => 101,
}
;
};
subtest 'ãªãª' => sub {
is $characters[7]->{name_ja}, 'ãªãª';
is $characters[7]->{name_en}, 'riri';
is $characters[7]->{nickname}, undef;
is $characters[7]->{voice_by}, 'ç½ç³ æ¶¼å';
is $characters[7]->{birthday}, undef;
is $characters[7]->{sign}, undef;
is $characters[7]->{color}, undef;
is_deeply
$characters[7]->{room_number}, {
before => 101,
first => undef,
second => undef,
third => undef,
}
;
};
subtest 'ã¿ãã¨' => sub {
is $characters[8]->{name_ja}, 'ã¿ãã¨';
is $characters[8]->{name_en}, 'misato';
is $characters[8]->{nickname}, undef;
is $characters[8]->{voice_by}, 'å°æ¸
æ°´ äºç¾';
is $characters[8]->{birthday}, undef;
is $characters[8]->{sign}, undef;
is $characters[8]->{color}, undef;
is_deeply
$characters[8]->{room_number}, {
before => 201,
first => undef,
second => undef,
third => undef,
}
;
};
};
done_testing;
t/04_year.t view on Meta::CPAN
# æ²è±ãããããããã忥ãã¡ãã£ã¦ã...
is $apartment->knock(201)->{name_ja}, 'ãã®';
is $apartment->knock(202)->{name_ja}, 'å®®å';
is $apartment->knock(203)->{name_ja}, 'ãªããª';
is $apartment->knock(101)->{name_ja}, 'èé';
is $apartment->knock(103)->{name_ja}, 'ä¹è';
# ãããªæã¯2å¹´ç®ã«æ»ãã¦ããã¨...
$hidamari->year('second');
$apartment = $hidamari->apartment;
# æ²è±ãããããããã帰ã£ã¦ãã!!
is $apartment->knock(201)->{name_ja}, 'ãã®';
is $apartment->knock(202)->{name_ja}, 'å®®å';
is $apartment->knock(203)->{name_ja}, 'ãªããª';
is $apartment->knock(101)->{name_ja}, 'ãã';
is $apartment->knock(102)->{name_ja}, 'æ²è±';
is $apartment->knock(103)->{name_ja}, 'ä¹è';