単語カウントの匿名ハッシュを作成します。各セクションの最後に、ハッシュを配列にプッシュし、新しい匿名ハッシュを開始します。以下のコードはこれを実装しています。 (Data::Dumper
への呼び出しが構築されているデータ構造を実証するしかない。)
use strict;
use warnings;
my $sect;
my @counts;
while (<DATA>) {
if (/^(\w+)/) {
$sect->{$1}++;
}
elsif ($sect) {
push @counts, $sect;
undef $sect;
}
}
use Data::Dumper;
$Data::Dumper::Sortkeys = 1;
print Data::Dumper->Dump([\@counts], ['*counts']);
__DATA__
--------------------
>this is my first statement
Parameter1
Parameter2
Parameter3
Parameter2
--------------------
>this is my second statement
Parameter1
Parameter2
Parameter3
--------------------
>this is my third statement
Parameter1
Parameter2
Parameter2
Parameter3
--------------------
>this is my fourth statement
Parameter1
Parameter2
--------------------
>this is my fifth statement
Parameter1
Parameter2
Parameter3
Parameter4
--------------------
OUTPUT
@counts = (
{
'Parameter1' => 1,
'Parameter2' => 2,
'Parameter3' => 1
},
{
'Parameter1' => 1,
'Parameter2' => 1,
'Parameter3' => 1
},
{
'Parameter1' => 1,
'Parameter2' => 2,
'Parameter3' => 1
},
{
'Parameter1' => 1,
'Parameter2' => 1
},
{
'Parameter1' => 1,
'Parameter2' => 1,
'Parameter3' => 1,
'Parameter4' => 1
}
);
「ハッシュの値を1つ増やす方法はありますか」とはどういう意味ですか?ハッシュの各要素を1つずつ増やしたいとしますか? "ハッシュの配列を作成する"?あなたは配列にハッシュを入れたいですか? 'push @list、\%hash'? – Qtax
マングリングの前後にサンプルデータを入力してください。 – daxim
私はあなたがハッシュを持っていることを理解しています。あなたは配列を持っています。ハッシュにはカウントがありますが、配列にはありません。しかしその後、あなたは私を失った。あなたの問題を説明するのであれば、あなたの解決策(問題は解決しない)を問題に説明するのではなく、簡単に説明できます。 – TLP