Если я вас понимаю, возможно, вам не нужен массив нулей;скорее вам нужен хеш .Ключами хеша будут значения в другом массиве, а значениями хеша будет количество раз, которое значение существует в другом массиве:
use strict;
use warnings;
my @other_array = (0,0,0,1,2,2,3,3,3,4);
my %tallies;
$tallies{$_} ++ for @other_array;
print "$_ => $tallies{$_}\n" for sort {$a <=> $b} keys %tallies;
Вывод:
0 => 3
1 => 1
2 => 2
3 => 3
4 => 1
КомуОтветьте на конкретный вопрос более прямо, чтобы создать массив, заполненный кучей нулей, вы можете использовать технику в этих двух примерах:
my @zeroes = (0) x 5; # (0,0,0,0,0)
my @zeroes = (0) x @other_array; # A zero for each item in @other_array.
# This works because in scalar context
# an array evaluates to its size.