6
#!/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 がデフォルトでどのように数値をソートするか教えてください (例えば、sort(@values) の結果は?)。

4

2 に答える 2

16

use diagnostics;この追加情報を提供するものを追加すると役立つ場合があります。

(F) 「use strict」または「use strict vars」と言いましたが、これは、すべての変数が (「my」または「state」を使用して) レキシカルにスコープされているか、「our」を使用して事前に宣言されているか、明示的に修飾されている必要があることを示しています。グローバル変数が含まれているパッケージを指定します (「::」を使用)。

foreach $value(@values1){する必要がありますforeach my $value(@values1){

于 2013-04-25T15:43:06.383 に答える
11

エラーは、宣言していないためです$value:

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

ソートに関するドキュメントは、http: //perldoc.perl.org/functions/sort.htmlにあります。

于 2013-04-25T15:41:57.503 に答える