我有一個只有字母的數組,沒有數字。我想計算一個特定字母顯示的次數。我不想使用散列,我需要保留列表的順序。我如何統計一個數組中的特定字母的數量,Perl?
use strict;
use warnings;
my %counts;
$counts{$_}++ for @array;
print "$counts\n";
我有一個只有字母的數組,沒有數字。我想計算一個特定字母顯示的次數。我不想使用散列,我需要保留列表的順序。我如何統計一個數組中的特定字母的數量,Perl?
use strict;
use warnings;
my %counts;
$counts{$_}++ for @array;
print "$counts\n";
使用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
將遞增。
您可能會考慮CPAN上的Text::CountString模塊。
您似乎可以使用的代碼可用於計算出現次數。你唯一的問題是顯示計數。您正在使用名爲$counts
的新標量變量,該變量未聲明且爲空。
你想是什麼:
use strict;
use warnings;
my %counts;
$counts{$_}++ for @array;
print "$_: $counts{$_}\n" for keys %counts;
請出示樣品輸入和預期的輸出。 – zdim
不清楚的是數組中的字符串「aaa」是否應計爲1或3。 – Zaid