Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Perl: Kommentare werden nicht ignoriert?!

  1. #1
    Registrierter Benutzer
    Registriert seit
    30.04.2001
    Beiträge
    89

    Question Perl: Kommentare werden nicht ignoriert?!

    Hallo Leute,

    ich bin hier gerade am abperlen . Irgendwiebin ich etwas irritiert, anscheinend gibt es Probleme mit meinen Kommentaren im Code. Perl hat teilweise darauf hingewiesen, dass Variablen bereits reserviert wurden. Die Position, die Perl angemeckert hat, war aber ein Kommentar . Wie kann das sein? Meine Kommentare beginnen, wie üblich, mit einem "#".
    Gibt es bei Kommentaren in Perl irgendwas besonderes zu beachten?

    Gruß, Picard

  2. #2
    Registrierter Benutzer
    Registriert seit
    13.11.2001
    Ort
    München
    Beiträge
    34
    eigentlich nicht

    poste doch mal den code

  3. #3
    Registrierter Benutzer
    Registriert seit
    30.04.2001
    Beiträge
    89
    ... naja, das sind einige hundert Zeilen. Ich habe die Kommentare erstmal herausgenommen. Ist natürlich nicht so schön, in zwei Wochen habe ich u.U. schon Probleme das noch nachzuvollziehen .

  4. #4
    Registrierter Benutzer
    Registriert seit
    30.04.2001
    Beiträge
    89

    kann doch nicht sein.... argh!

    Hallo,

    da mein Skript nun schon sehr umfangreich geworden ist, bin ich nun wieder bei gegangen, den code zu kommentieren. Und was passiert? Mein Perl-Skript streikt. Ich konnte nun eine Stelle isolieren, bei der das Problem auftritt.

    Code:
    # function to read the module files
    sub readmods
       {
       # directory, where to find the modules
       my $hidefimods="$hidefiroot/etc/hidefi/modules/";
       # store filenames in this directory to an array
       my @files=`ls -1 $hidefimods`;
       # process all files
       foreach $file (@files)
          {
          # remove spaces, i don't really know why this is needed, but it is...
          $file=~s/\s+//g;
          # variable to store the whole module (we'll proceed as already done with the configuration file)
          my $wholemod="";
          # open module file
          open(MOD,"<$hidefimods/$file") || die "Cant read $hidefimods/$file\n";
          # store its lines to an array
          my @modlines=<MOD>;
          foreach my $modline (@modlines)
             {
             # if this line contains characters and begins not with an
             if ($modline =~ /\w/ && $modline !~ /^\s*#/)
                {
    Die funktion geht noch viel weiter... das lasse ich mal weg. Tatsache ist, das die so eingeleitete Funktion nicht läuft. Ich bekomme die Mitteilung, das es sich um ein falsche switch-Statement handelt. switch benutze ich das letzte Mal etwa 250 Zeilen, vor der, die in der Fehlerangabe gemeldet wird , also auch in einer anderen Subroutine.
    Entferne ich die Kommentare auf dem Bereich, funktioniert alles...

    ... das kann doch nicht angehen!

  5. #5
    Registrierter Benutzer
    Registriert seit
    13.11.2001
    Ort
    München
    Beiträge
    34
    die zeilen scheinen in ordnung zu sein

    ich glaube aber das du das # hier maskieren musst
    /^\s*#/ -> /^\s*\#/

    es kann eigentlich fast nur ein schreibfehler irgendwo weiter oben sein
    rufst du denn die subroutine in deiner switch anweisung auf ?

  6. #6
    Registrierter Benutzer
    Registriert seit
    30.04.2001
    Beiträge
    89
    Nein, die switch-Anweisung war in einer anderen sub-Routine. Die haben sich auch nicht gegenseitig aufgerufen. Ich habe es einfach nicht gecheckt und bin bald verrückt geworden. Wenn man nicht davon ausgehen könnte, dass das Switch Modul in Ordnung ist, würde ich behaupten, dass das Ding ne Macke hat. Ich habe es dann jedenfalls rausgeschmissen und nur noch mit "elsif" gearbeitet. Seitdem habe ich diese Probleme nicht mehr und Programmierfehler sind recht schnell ausfindig gemacht...
    Escaping der # hatte ich auch probiert... hatte nichts genützt...

    ... jedenfalls stehe ich mit dem Switch Modul erstmal auf Kriegsfuß ...

    Gruß, Picard

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •