Есть куча служебных переменных, которые редко используются и которые можно (но не нужно) приспособить под свои нужды:
$. += $_ 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
