Acme-2zicon
view release on metacpan or search on metacpan
lib/Acme/2zicon.pm view on Meta::CPAN
package Acme::2zicon;
use 5.008001;
use strict;
use warnings;
use Carp qw(croak);
use DateTime;
our $VERSION = "0.7";
my @members = qw(
MatobaKarin
NakamuraAkari
NemotoNagi
OkumuraNonoka
ShigematsuYuka
SuyamaEmiri
TsurumiMoe
OtsukaMiyu
YamatoAo
);
sub new {
my $class = shift;
my $self = bless {members => []}, $class;
$self->_initialize;
return $self;
}
sub members {
my ($self, $type, @members) = @_;
@members = @{$self->{members}} unless @members;
return @members unless $type;
}
sub sort {
my ($self, $type, $order, @members) = @_;
@members = $self->members unless @members;
# order by desc if $order is true
if ($order) {
return sort {$b->$type <=> $a->$type} @members;
}
else {
return sort {$a->$type <=> $b->$type} @members;
}
}
sub select {
my ($self, $type, $number, $operator, @members) = @_;
$self->_die('invalid operator was passed in')
unless grep {$operator eq $_} qw(== >= <= > <);
@members = $self->members unless @members;
my $compare = eval "(sub { \$number $operator \$_[0] })";
return grep { $compare->($_->$type) } @members;
}
sub _initialize {
my $self = shift;
for my $member (@members) {
( run in 0.584 second using v1.01-cache-2.11-cpan-524268b4103 )