2011-03-16 13 views
23

Perl'de CSV dosyalarını değiştirdiğimde, genellikle bir dizi aynı elemanla bir diziyi başlatma ihtiyacım var:perl - n boş dizeleri veya sıfırları olan bir dizi nasıl oluşturulur?

my $arr = []; 
for my $i (0..$n-1) { 
    push @$arr, ""; 
} 

Daha kompakt bir şekilde yapmanın bir yolu var mı?

Mükemmel bir şekilde, eksik sütunları kolayca ekleyebilmem için bu amaç için bir ifadeye sahip olmak isterim:

f([@$some_tab, n_elems("", $column_number - scalar(@$some_tab))]); 

Bir işlevi nasıl yazacağımı biliyorum, ama ben bunu 10 satırlık betiklerde asla yapmam .

cevap

40

Çarpanı kullanın.

my @arr = ("") x $n; 

Güncelleme: bu referanslarla dizi dolduruyor eğer arzu olmayabilir elemanı, çoğaltır unutmayın. Böyle bir durumda, her bir öğenin yapılandırılması gerektiğinde, bir map:

İlgili konular