Я не уверен, что вы можете получить более компактный вариант, чем решение @ DVK.
#!/usr/bin/perl
use strict; use warnings;
use List::Util qw(sum);
my @array = (3, 2, 1, 5);
my $sum = sum @array;
for my $x ( @array ) {
print $sum, "\n";
$sum -= $x;
}
print "0\n";
Объединение sum
с map
:
#!/usr/bin/perl
use strict; use warnings;
use List::Util qw(sum);
my @array = (3, 2, 1, 5);
my $sum = sum @array;
print join("\n", map $sum -= $_, (0, @array)), "\n";