perl
2012-07-05 57 views 2 likes 
2

我得到了下面的perl錯誤。perl strict ref error

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"; 

回答

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); 

等等......

相關問題