Hannes: Fehlermeldungen in Perl wie beheben (Globale Var., Dateinamen)

Ich habe auf euer Raten "use strict" eingefuegt. Nun hab ich folgende Fehlermeldungen

1.) Globale Variablen muessen irgendwie angemeldet werden
Global symbol "$Daten" requires explicit package name at ea.plx line 17.

2.)Variablen muessen importiert werden?!
Variable "%INPUT" is not imported at ea.plx line 34.

3.) Unterschiedliche Dateien werden in verschiedenen Prozeduren scheinbar falsch deklariert
Unquoted string "datendatei" may clash with future reserved word at ea.plx line 658.
Quelltextbeispiel:
        open(indexdatei, '<../formulare/'.$INPUT{"formular"}.'.flt')
        while(<indexdatei>)
                {
                        if ($kopf eq "ja") {$kopftext=$kopftext.$_;}
                }
        close(indexdatei);

Woran liegt das?
Punkt 1 kann ich gut verstehen - ich hab nur gerade die Deklaration nicht zur Hand.
Punkt 2 ist wahrscheinlich geloest, wenn ich "Input" global deklariere (oder?)
Punkt 3 verstehe ich jedoch nicht.

Vielen Dank für Eure hilfe

Hannes

  1. Hi,

    Ich habe auf euer Raten "use strict" eingefuegt.

    sehr schön :-) Benutzt Du auch den w-Switch? (#!/usr/bin/perl -w)

    1.) Globale Variablen muessen irgendwie angemeldet werden
    Global symbol "$Daten" requires explicit package name at ea.plx line 17.

    perldoc -f my
    perldoc vars

    2.)Variablen muessen importiert werden?!
    Variable "%INPUT" is not imported at ea.plx line 34.

    Wie sieht der Zusammenhang dieses Fehlers aus? Was ist "um Zeile 34 herum"?

    Btw: perldoc perlstyle, Variablennamen sollten durchgehend klein sein (bis auf bestimmte Ausnahmen).

    3.) Unterschiedliche Dateien werden in verschiedenen Prozeduren scheinbar falsch deklariert
    Unquoted string "datendatei" may clash with future reserved word at ea.plx line 658.

    Nenn es DATENDATEI, wie für Handler üblich - siehe auch perldoc perlstyle.

    open(indexdatei, '<../formulare/'.$INPUT{"formular"}.'.flt')

    Dies läßt darauf schließen, daß Du folgendes nicht kennst:

    perldoc CGI
    perldoc -f die
    perldoc perlopentut

    if ($kopf eq "ja") {$kopftext=$kopftext.$_;}

    perldoc perlfaq4, What's wrong with always quoting "$vars"?
    perldoc perlop, .=

    ich hab nur gerade die Deklaration nicht zur Hand.

    Huh? Meinst Du die Doku? Wenn Du sie nicht zu Hause hast, solltest Du unbedingt Perl installieren. Bis dahin hilft Dir http://www.perldoc.org/.

    Cheatah