From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

use 5.008001;
use strict;
our $VERSION = "0.03";
my @members = qw(SU-METAL YUIMETAL MOAMETAL);
sub new {
my $class = shift;
my $self = bless {members => []}, $class;
for my $member (@members) {
$member =~ s|-|_|;
my $module_name = 'Acme::BABYMETAL::' . $member;
eval qq|require $module_name;|;
push @{$self->{members}}, $module_name->new;
}
return $self;
}
sub homepage {
my ($self) = @_;
}
sub youtube {
my ($self) = @_;
}
sub facebook {
my ($self) = @_;
}
sub instagram {
my ($self) = @_;
}
sub twitter {
my ($self) = @_;
}
sub members {
my ($self, $member) = @_;
return @{$self->{members}} unless $member;
if ( $member =~ /^S/i ) {
@members = $self->{members}[0];
} elsif ( $member =~ /^Y/i ) {
@members = $self->{members}[1];
} elsif ( $member =~ /^M/i ) {
@members = $self->{members}[2];
} else {
@members = @{$self->{members}};
}
return @members;
}
sub shout {
my ($self) = @_;
print "We are BABYMETAL DEATH!!\n";
}
1;
__END__
=encoding utf-8
=head1 NAME
Acme::BABYMETAL - All about Japanese metal idol unit "BABYMETAL"
=head1 SYNOPSIS
use Acme::BABYMETAL;
my $babymetal = Acme::BABYMETAL->new;
$babymetal->homepage;
$babymetal->youtube;
$babymetal->facebook;
$babymetal->instagram;
$babymetal->twitter;
my @members = $babymetal->members;
for my $member (@members) {
my $metal_name = $member->metal_name;
my $name_ja = $member->name_ja;
my $first_name_ja = $member->first_name_ja;
my $family_name_ja = $member->family_name_ja;
my $name_en = $member->name_en;
my $first_name_en = $member->first_name_en;
my $family_name_en = $member->family_name_en;
my $birthday = $member->birthday;
my $age = $member->age;
my $blood_type = $member->blood_type;
my $hometown = $member->hometown;
my $shout = $member->shout;
}
my ($su_metal) = $babymetal->members('SU-METAL');
my ($yuimetal) = $babymetal->members('YUIMETAL');
my ($moametal) = $babymetal->members('MOAMETAL');
$su_metal->shout; # SU-METAL DEATH!!
$yuimetal->shout; # YUIMETAL DEATH!!
$moametal->shout; # MOAMETAL DEATH!!
$babymetal->shout; # We are BABYMETAL DEATH!!
=head1 DESCRIPTION
BABYMETAL is a Japanese metal idol unit.
Acme::BABYMETAL provides an easy method to information of BABYMETAL.
=head1 LICENSE
Copyright (C) Hondallica.
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=head1 AUTHOR
Hondallica E<lt>hondallica@gmail.comE<gt>
=cut