問題は、ハッシュのハッシュを作成してから、各ハッシュにさらに要素を追加しようとしていることです。ファイルから読み取っていて、さまざまなアイテムを照合していて、それらを別のサブハッシュ (「カテゴリ」、「アイテム」、「説明」、「スコア」) に保存したいと考えています。
後でCSVファイルに保存する必要がありますが、現時点では印刷しようとしていますが、多くのエラーが発生しています。
これが私のコードです:
use strict;
use warnings;
my %MacroA = ('Category', 'Item', 'Description', 'Score');
open (my $file, '<', 'Layout.txt') or die $!;
while (my $line = <$file>) {
if ($line =~ /\b(layout)\b,/) {
$MacroA{Category}++;
}
elsif ($line =~ /,([\w\s]+?),/) {
$MacroA{Item}++;
}
elsif ($line =~ /,\b(\w+?.\d+?)\b,/g) {
$MacroA{Desciption}++;
}
elsif ($line =~ /,\b(pass|fail)\b/) {
$MacroA{Score}++;
}
}
close $file;
foreach my $categories (keys %{ $MacroA{$Category}}) {
print $categories, "\n";
}
foreach my $items (keys %{ $MacroA{$Item}}) {
print $items, "\n";
}
foreach my $descriptions (keys %{ $MacroA{$Description}}) {
print $descriptions, "\n";
}
foreach my $scores (keys %{ $MacroA{$Score}}) {
print $scores, "\n";
}
そして、私が得るエラー:
Global symbol "$Category" requires explicit package name at MacroA.pl line 29.
Global symbol "$Item" requires explicit package name at MacroA.pl line 32.
Global symbol "$Description" requires explicit package name at MacroA.pl line 35.
Global symbol "$Score" requires explicit package name at MacroA.pl line 38.
Execution of MacroA.pl aborted due to compilation errors. . .