Есть куча служебных переменных, которые редко используются и которые можно
(но не нужно) приспособить под свои нужды:

$. += $_ for @m; say $.

В конце концов есть ведь сам массив:

unshift @m, 0; $m[0] += $m[$_] for 1 .. $#m; say shift @m;

2011/6/7 <[email protected]>

> > 2011/6/7 Aleksander Gorohovski:
> >
> >> Подскажите можно ли более изящно, без промежуточной переменной $sum,
> >> как это обычно делаю:
> >>
> >> my $sum;
> >> $sum += $_ for @m;
> >>
> >> подсчитать сумму элементов массива @m
> >> ?
> >
> > С подпрограммой, потому просто для коллекции:
> >
> >   $ perl -E 'sub funcsum { @_ > 1 ? funcsum(@_[1..$#_]) + $_[0] :
> > $_[0] } say funcsum(@ARGV)' 1 1 2 3 5 8 11
> >   31
>
> О-о. Тоже Супер. Главное функция безымянная.
> Спасибо.
>
> > (Созреет на ещё один LT для Шитова?) (:
>
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить