问题是,我正在尝试创建散列哈希,然后向每个哈希添加更多元素。我正在阅读一个文件,并且即时匹配各种项目,我想将它们存储在不同的子哈希中 - ('类别','项目','描述','分数')。后来我需要将它们存储在一个CSV文件中,但目前我只是试图打印它们,但是我收到了很多错误。 这里是我的代码:散列哈希perl
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. . .
发布您的错误。更好的是,阅读你的错误。 – Dancrumb
我建议选择“Learning Perl”一书,并确保您了解基础知识。脚本有很多问题,包括Perl语法和逻辑。 – gpojd
是的,我一直在看书@gpojd,谢谢 – TheBlackCorsair