Perl需要显式的包名

时间:2013-04-25 15:39:59

标签: perl

#!/usr/bin/perl
# countlines2.pl by Bill Weinman <http://bw.org/contact/>
# Copyright (c) 2010 The BearHeart Group, LLC

use strict;
use warnings;

sub main {
my @values = (43,123,5,89,1,76);
my @values1 = sort(@values);

  foreach $value(@values1){
    print "$value\n";
  }
}

Errors - 
"Global symbol "$value" requires explicit package name at task2.txt line 12
"Global symbol "$value" requires explicit package name at task2.txt line 13

我是perl的初学者,所以我遇到了上述错误。另外请告诉我默认情况下perl如何对数字进行排序(例如排序(@values)会产生什么?)。

2 个答案:

答案 0 :(得分:16)

您可能会发现添加use diagnostics;会对您提供更多信息很有帮助:

  

(F)你说“使用严格”或“使用严格的变量”,这表明   所有变量必须是词法范围的(使用“我的”或   “state”),事先使用“我们的”声明,或明确限定   说明全局变量所在的包(使用“::”)。

foreach $value(@values1){应为foreach my $value(@values1){

答案 1 :(得分:11)

错误是因为您没有声明$value

foreach my $value(@values1){
    print "$value\n";
  }

可在此处找到排序文档:http://perldoc.perl.org/functions/sort.html