我是新手Perl程序員,並希望一些幫助。我有一個數組列表,我試圖將基於管道的每個元素分成兩個標量元素。從那裏,我想只突出讀作'PJ RER Apts to Share'的線條作爲第一個元素。然後,我想在每次出現元素時計算一次第二個元素。我在下面寫了一段代碼,但無法弄清楚我錯在哪裏。這可能是我只是俯視的小事。任何幫助將不勝感激。如何使用Perl查找,計算和顯示數組的獨特元素?
## CODE ##
my @data = ('PJ RER Apts to Share|PROVIDENCE',
'PJ RER Apts to Share|JOHNSTON',
'PJ RER Apts to Share|JOHNSTON',
'PJ RER Apts to Share|JOHNSTON',
'PJ RER Condo|WEST WARWICK',
'PJ RER Condo|WARWICK');
foreach my $line (@data) {
$count = @data;
chomp($line);
@fields = split(/\|/,$line);
if (($fields[0] =~ /PJ RER Apts to Share/g)){
@array2 = $fields[1];
my %seen;
my @uniq = grep { ! $seen{$_}++ } @array2;
my $count2 = scalar(@uniq);
print "$array2[0] ($count2)","\n"
}
}
print "$count","\n";
## OUTPUT ##
PROVIDENCE (1)
JOHNSTON (1)
JOHNSTON (1)
JOHNSTON (1)
6
這是排序字段還是以隨機順序回傳數據? – Luke 2010-05-13 16:28:16
如果你想要進行排序,然後說'每個(排序%$ V)'在過去'while'循環。希望能幫助到你! – Phil 2010-05-13 23:26:50