perl my变量$ x掩盖了同一语句中的早期声明

时间:2017-12-08 21:27:50

标签: perl

我对此错误感到困惑,此程序将用户输入1 2 3 2并以特定顺序显示输入。

#!/usr/bin/perl -w
use strict;
use warnings;

print "Enter a number :";

my $num = <STDIN>;
chomp($num);

my @final = split(' ',$num);
my @count;
foreach my $x (@final){

 $count[my $x]++;

}
foreach my $x (@count){

print my $x .$count[my $x];
}

我的输出:我收到此错误 “my”变量$ x在第19行的同一语句中掩盖了早期声明

预期产出:

  • 1 1
  • 2 2
  • 3 1

1 个答案:

答案 0 :(得分:7)

您经常使用my

my用于为当前范围声明变量(通常是块{...})。

使用变量,您不需要my

所以,在你的第一个循环中,执行:

$count[ $x ]++;

在第二个循环中:

print "$x: $count[ $x ]\n";

请参阅perldoc -f myPrivate-Variables-via-my