Jens Irrgang: Übernehmen von vordefinierten Skalaren

Hallo und guten Abend,

gibt es eine Möglichkeit einen Wert aus einem vordefinierten Skalar zu übernehmen für eine spätere Verwendung?

open(irgendwas) or die "klappt nicht:$!";

Und den im Fehlerfall erzeugten Inhalt von $! möchte ich nicht sofort ausgegeben haben, sondern in einer anderen Variablen gespeichert wissen zur späteren Verwendung. Meine Versuche bisher sind schief gegangen.

Jens

  1. Hallo,

    open(irgendwas) or die "klappt nicht:$!";

    Und den im Fehlerfall erzeugten Inhalt von $! möchte ich nicht sofort ausgegeben haben, sondern in einer anderen Variablen gespeichert wissen zur späteren Verwendung. Meine Versuche bisher sind schief gegangen.

    open() funktioniert ja so, daß es, so wie in der Dokumentation beschrieben ist, einen Wert ungleich 0 zurückliefert, wenn alles gut gegangen ist, sonst wird undefined zurückgeliefert und $! enthält den Fehlertext. _Wie_ Du dieses Verhalten in deinem Programm ausnützt ist vollkommen Dir überlassen. Du kannst es, wen es die Programmlogik erlaubt, auch vollkommen ignorieren.
    Und natürlich kannst Du $! gleich behandeln wie jede andere Variable, also auch zuweisen.

    if(open(IN, 'wasuachimmer'))
      {
       # mach was
      }
    else
      {
      $fehler = $!;
      # und jetzt zu etwas ganz anderem
      }

    So ein Konstrukt ist durchaus zulässig.

    Grüße
      Klaus

    1. Hallo Klaus,

      das genau war es was ich gesucht habe. Erschwerend kam hinzu das Perlbuilder an sich diese Variable ums verrecken nicht an eine normale Variable übergibt. Wenn ich das aber auf meinem Test-Server laufen lasse, funktioniert es.

      Danke für Deine Hilfe

      Jens

      1. Hi!

        das genau war es was ich gesucht habe. Erschwerend kam hinzu das Perlbuilder an sich diese Variable ums verrecken nicht an eine normale Variable übergibt. Wenn ich das aber auf meinem Test-Server laufen lasse, funktioniert es.

        Das finde ich ja schon komisch. Versuch mal
          $fehler = "$!";
        Dabei muesste ein voellig neuer String aufgebaut werden, in den $! einfliesst. Vielleicht laesst sich Dein Programm davon ueberzeugen.

        So long

        --
        I am certain that some of our rhetoric must seem familiar to those who remember how World War Two started.
            -- Dennis T. Brown (NC State University Raleigh) in einem Leserbrief an den Spiegel
        1. Danke für den Tipp, aber solange das Problem nur im Programm besteht, es aber auf dem Server läuft, ist es mir völlig egal. DAs sind Kleinigkeiten die mich dann nicht mehr stören. Perlbuilder kommt auch mit strict nicht zurecht - d.h. er ignoriert es einfach.

          Jens

          1. Hallo,

            Danke für den Tipp, aber solange das Problem nur im Programm besteht, es aber auf dem Server läuft, ist es mir völlig egal. DAs sind Kleinigkeiten die mich dann nicht mehr stören. Perlbuilder kommt auch mit strict nicht zurecht - d.h. er ignoriert es einfach.

            Hmm, dann frage ich mich schön langsam, ob das wirklich das Werkzeug deiner Wahl sein sollte. Wenn es derartige Mängel aufweist (was ich nicht nachvollziehen kann, da ich dieses Produkt nicht kenne), solltest Du es wirklcih über den Jordan schicken und Dir ein anderes Werkzeug (Editor) suchen.

            Grüße
              Klaus

            1. Hallo,

              der Grund ist einfach. Erstens wegen dem Highlighting (haben andere Progs auch - weiss ich), zweitens wegen den Tooltipps (gibt bei Befehlen die Syntax an) und drittens weil man dort das Script Schritt für Schritt ablaufen lassen kann, mit einer Möglichkeit die Variablen zu beoabchten (vom Inhalt her). Damit kann man schnell mal einen Fehler ausmachen. Man findet doch so manchen Fehler leichter wenn mein weiß welche Variable den falschen Wert hat. Zusätzlich dazu kann er ein HTML-Dokument als Eingabemaske laden (also zum Beispiel das zu verarbeitende Formular) und die Werte daraus übernehmen. Ist schon ganz praktisch.

              Jens