我收到以下perl错误。
Can't use string ("") as a symbol ref while "strict refs" in use at test173 line 30.
粘贴下面的代码。第30行是公开声明。它失败了
在公开声明中。我有use strict;
和use warnings;
脚本。错误表示什么?如何更改要解决的代码
这个错误。
my $file = 'testdata';
open($data, '<', $file) or die "Could not open '$file'\n";
print "file data id:$data\n";
@iu_data = <$data>;
$totalLineCnt = @iu_data;
print "total line cnt: $totalLineCnt". "\n";
答案 0 :(得分:5)
请确保您之前没有为$ data分配值。我可以通过三行重现您的问题:
use strict;
my $data = '';
open($data, '<', 'test.txt');
您可以通过创建新范围来解决问题:
use strict;
my $data = '';
{
my $data;
open($data, '<', 'test.txt');
close($data);
}
或者,您可以在使用之前取消定义$data
:
use strict;
my $data = '';
undef $data;
open($data, '<', 'test.txt');
close($data);
Etc等......