3 Stimmen

Perl strenge ref Fehler

Ich erhalte den unten stehenden Perl-Fehler.

Kann den String ("") nicht als Symbol-Referenz verwenden, während "strict refs" in Zeile 30 von Test173 verwendet wird.

Der folgende Code wurde eingefügt. Zeile 30 ist die Öffnungsanweisung. Es scheitert an der Öffnungsanweisung. Ich habe use strict; und use warnings; im Skript. Was bedeutet der Fehler? Wie ändere ich den Code, um diesen Fehler zu beheben.

my $file = 'testdata';
open($data, '<', $file) or die "Konnte '$file' nicht öffnen'\n";
print "Daten der Datei ID:$data\n"; 
@iu_data = <$data>;
$totalLineCnt = @iu_data;
print "Gesamtzeilenanzahl: $totalLineCnt". "\n";

6voto

ckruse Punkte 9496

Stellen Sie sicher, dass Sie keinen Wert für $data zugewiesen haben, bevor. Ich kann Ihr Problem mit nur drei Zeilen reproduzieren:

use strict;
my $data = '';
open($data, '<', 'test.txt');

Sie können das Problem lösen, indem Sie zum Beispiel einen neuen Scope erstellen:

use strict;
my $data = '';
{
  my $data;
  open($data, '<', 'test.txt');
  close($data);
}

Alternativ können Sie $data undefinieren, bevor Sie es verwenden:

use strict;
my $data = '';
undef $data;
open($data, '<', 'test.txt');
close($data);

usw...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X