<meta charset="utf-8"><font class="Apple-style-span" face="arial, sans-serif"><div><span class="Apple-style-span" style="border-collapse: collapse;">Есть куча служебных переменных, которые редко используются и которые можно (но не нужно) приспособить под свои нужды:</span></div>

<div><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></div><div><span class="Apple-style-span" style="border-collapse: collapse;">$. += $_ for @m; say $.</span></div><div><span class="Apple-style-span" style="border-collapse: collapse;"><br>

</span></div><div><span class="Apple-style-span" style="border-collapse: collapse;">В конце концов есть ведь сам массив:</span></div><div><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></div>

<div><span class="Apple-style-span" style="border-collapse: collapse;">unshift @m, 0; $m[0] += $m[$_] for 1 .. $#m; say shift @m;</span></div><br></font><div class="gmail_quote">2011/6/7  <span dir="ltr"><<a href="mailto:moscow-pm-request@pm.org">moscow-pm-request@pm.org</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div id=":a2">> 2011/6/7 Aleksander Gorohovski:<br>
><br>
>> Подскажите можно ли более изящно, без промежуточной переменной $sum,<br>
>> как это обычно делаю:<br>
>><br>
>> my $sum;<br>
>> $sum += $_ for @m;<br>
>><br>
>> подсчитать сумму элементов массива @m<br>
>> ?<br>
><br>
> С подпрограммой, потому просто для коллекции:<br>
><br>
>   $ perl -E 'sub funcsum { @_ > 1 ? funcsum(@_[1..$#_]) + $_[0] :<br>
> $_[0] } say funcsum(@ARGV)' 1 1 2 3 5 8 11<br>
>   31<br>
<br>
О-о. Тоже Супер. Главное функция безымянная.<br>
Спасибо.<br>
<br>
> (Созреет на ещё один LT для Шитова?) (:</div></blockquote></div><br>