Perl 使用关联数组将项目指定给项目编号
我的目标是将每个项目与其对应的项目编号相关联。我的输入文件很广泛,但简而言之如下所示:Perl 使用关联数组将项目指定给项目编号,perl,hash,associative-array,Perl,Hash,Associative Array,我的目标是将每个项目与其对应的项目编号相关联。我的输入文件很广泛,但简而言之如下所示: 678794:T.V, Samsung 530871:iPad, Apple #etc... 我收到一个错误,说明: 全局符号“$items”要求在./items.pl第10行显示包名 open (NAMES, 'items.txt') || die "Cant open it $!"; while (<NAMES>) { my %items; my $maxStrLen
678794:T.V, Samsung
530871:iPad, Apple #etc...
我收到一个错误,说明:
全局符号“$items”要求在./items.pl第10行显示包名
open (NAMES, 'items.txt') || die "Cant open it $!";
while (<NAMES>) {
my %items;
my $maxStrLength = "";
(my $modelNO, my $item) = split(':',$_);
$items = $item{$modelNO};
if(length($item) > $maxStrLength) {
$maxStrLength=length($item);
}
}
close NAMES;
exit (0);
全局符号“%item”要求在./items.pl第10行显示包名
open (NAMES, 'items.txt') || die "Cant open it $!";
while (<NAMES>) {
my %items;
my $maxStrLength = "";
(my $modelNO, my $item) = split(':',$_);
$items = $item{$modelNO};
if(length($item) > $maxStrLength) {
$maxStrLength=length($item);
}
}
close NAMES;
exit (0);
open(name,'items.txt')| | die“无法打开$!”;
而(){
我的%项目;
我的$maxStrLength=“”;
(my$modelNO,my$item)=拆分(':',$);
$items=$item{$modelNO};
if(长度($item)>maxStrLength){
$maxStrLength=长度($item);
}
}
姓名相近;
出口(0);
我假设你有使用严格代码>在您的代码中。然后您需要使用my
声明哈希:
my %item;
我建议将哈希名称更改为%items
,以免与标量$item
混淆
另外,您不应该在if
语句中使用my
。您可能希望在while循环之外声明$maxStrLength
我认为这更接近您想要的(自包含的可运行代码):
使用警告;
严格使用;
我的$maxStrLength=0;
我的%项目;
而(){
我的($modelNO,$item)=拆分/:/;
$items{$modelNO}=$item;
if(长度($item)>maxStrLength){
$maxStrLength=长度($item);
}
}
__资料__
678794:T.V,三星
530871:iPad、苹果
我假设你有使用严格代码>在您的代码中。然后您需要使用my
声明哈希:
my %item;
我建议将哈希名称更改为%items
,以免与标量$item
混淆
另外,您不应该在if
语句中使用my
。您可能希望在while循环之外声明$maxStrLength
我认为这更接近您想要的(自包含的可运行代码):
使用警告;
严格使用;
我的$maxStrLength=0;
我的%项目;
而(){
我的($modelNO,$item)=拆分/:/;
$items{$modelNO}=$item;
if(长度($item)>maxStrLength){
$maxStrLength=长度($item);
}
}
__资料__
678794:T.V,三星
530871:iPad、苹果
确切的错误消息是什么?您能描述一下您想要实现的目标吗?全局符号“%item”要求在./items.pl处有明确的包名。我试图去掉冒号,然后将每个项链接到相应的编号,稍后我将打印一份排序报告。确切的错误消息是什么?您能描述一下您想要实现的目标吗?全局符号“%item”要求在./items.pl处有明确的包名。我试图去掉冒号,然后将每个项链接到相应的编号,稍后我将打印一份排序报告。