On 07.06.2011 21:49, Maxim Vuets wrote:

С подпрограммой, потому просто для коллекции:

Ну давайте тогда с целым ООПом:




package Summator;

sub new {
    my $x = 0;
    return bless \$x, __PACKAGE__;
}

use overload
'+' => sub {
    my ($self, $items) = @_;
    $items = [ $items ] if !ref $items;
    $$self = 0;
    $$self += $_ for @$items;
    return $self;
},

'""' => sub {
    my $self = shift;
    return $$self;
};


package main;
print Summator->new + ( 1 .. 100 );
1;




--
Олег Алистратов
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить