Perl - 配列の each メソッド

いろんな言語に配列の each メソッドがあるので Perl でも全く無意味に作ってみる。

#!/usr/bin/env perl
use strict;
use warnings;

my $array = Array->new(10, 20, 30, 40);

$array->each(sub {
    my $item = shift;
    print $item + 1, "\n";
});


package Array;

sub new {
    my $class = shift;
    my @array = @_;
    bless \@array, $class;
}

sub each : method {
    my @array = @{ shift() };
    my $sub_ref = shift;
    for my $item (@array) {
        $sub_ref->($item);
    }
}