Thread Fehler beim Ausgabe einlesen (6 answers)
Opened by Gast at 2008-11-05 12:55

renee
 2008-11-05 13:16
#115987 #115987
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Die Variable $1 ist eine Spezialvariable in Perl. Diese wird gesetzt, wenn Du in einem matchenden Regulären Ausdruck Klammern verwendest.

Z.B.

Code (perl): (dl )
1
2
3
if( $_ =~ m!^(SP)! ){
    print $1;
}


Du verwendest aber diese Klammern nicht, damit ist in $1 kein Wert gespeichert. Die Warnung mit "uninitialized value" ist etwas blöd, besser wäre ein "undefined value". (Ist auch ein bei den Perl 5 Porters schon bekanntes Problem)

Ich nehme an, dass Du eher $_ statt $1 gemeint hast.

Noch eine Anmerkung: Wenn Du eine Datei öffnest, solltest erstens angeben, ob Du sie lesend oder schreibend öffnest und zum anderen solltest Du Fehler abfangen.

Lexikalische Filehandles haben auch noch Vorteile und in der while-Schleife solltest Du eine lexikalische Variable nehmen.

Also:
Code (perl): (dl )
1
2
3
4
5
open my $fh, '<', $Ausgabe or die "$Ausgabe: $!";
while( my $line = <$fh> ){
  # und jetzt immer $line statt $_ verwenden
}
close $fh;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread Fehler beim Ausgabe einlesen