2016-04-10 35 views
0

我有一個只有字母的數組,沒有數字。我想計算一個特定字母顯示的次數。我不想使用散列,我需要保留列表的順序。我如何統計一個數組中的特定字母的數量,Perl?

use strict; 
use warnings; 

my %counts; 
$counts{$_}++ for @array; 
print "$counts\n"; 
+0

請出示樣品輸入和預期的輸出。 – zdim

+0

不清楚的是數組中的字符串「aaa」是否應計爲1或3。 – Zaid

回答

1

使用grep爲做到這一點

my @ar = qw(abc cde fgh 123 abc); 
my $count = grep{ /ab/} @ar; 
print $count; 

或者使用的foreach

my @ar = qw(abc cde fgh 123 abc); 
my $m; 
$m+= /ab/,foreach (@ar); 
print $m; 

雖然在比賽中遇到$m將遞增。

2

您似乎可以使用的代碼可用於計算出現次數。你唯一的問題是顯示計數。您正在使用名爲$counts的新標量變量,該變量未聲明且爲空。

你想是什麼:

use strict; 
use warnings; 

my %counts; 
$counts{$_}++ for @array; 
print "$_: $counts{$_}\n" for keys %counts; 
相關問題