sub decode2 { my $total= shift; my $delta= 0; my $diff= 0; foreach (@_) { $delta += $_; $diff += $delta; } my $original= ($total-$diff)/(1+scalar @_); my $value= $original; my @results= map { $value += $_; } @_; return ($original, @results); }