0

私が間違っていることは何ですか?開かれたファイルは空ではありません。しかし、私はまだ得ています

グローバル シンボル「$tabbb」には、mix.pl の 8 行目に明示的なパッケージ名が必要です。

#!/usr/bin/perl

use strict;
use warnings;

open FILE, "<", "seeds.data" or die $!;
my @tab = <FILE>;
print @$tab;
4

2 に答える 2

1

use strictandを正しく使用しuse warningsました。利点の 1 つは、宣言していない変数を使用すると Perl が警告することです。エラーメッセージ

グローバル シンボル「$tabbb」には、mix.pl の 8 行目に明示的なパッケージ名が必要です。

を使用しているため、宣言されていないstrictという変数を参照することはできません。$tabbbあなたのライン

print @$tab;

スカラー変数$tabを配列として逆参照しています.aを宣言していないので、それ$tabがエラーメッセージの意味だと思います. ただし、開いたファイルの内容を含む配列変数があるため、次のように記述します。@tab

print @tab;

代わりは。

何よりも、ファイルを行ごとに読み取り、書き込みます

use strict;
use warnings;

open my $fh, '<', 'seeds.data' or die $!;
while (<$fh>) {
  print;
}
于 2013-05-16T18:45:37.053 に答える