#!/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)会产生什么?)。
答案 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。