noName: Prüfen, ob eine Variable Daten enthält!?

Hallo,

wie kann ich in Perl überprüfen, ob eine Variable auch Inhalt besitzt?

Ich arbeite zuvor ein wenig mit split und speicher alles im Array und
da treten dann ein paar leer Array-Felder auf, die ich später gerne
ignorieren möchte!

  1. Hallo,

    foreach(@splitarray)
    {
      if(!$_) next;
      do_something();
    }

    Gruß Markus

    --
    alles wird gut...
    1. Hallo,

      foreach(@splitarray)
      {

      next if(!$_);

      do_something();
      }

      so ist's natürlich richtig...

      Markus

      --
      alles wird gut...
      1. foreach(@splitarray)
        {
           next if(!$_);

        Besser: next unless $_;

        Aber das ist nicht die Antwort auf die Frage, damit prüfst du, ob die Variabel ungleich undef, 0 oder kein Leerstring ist.

        Vermutlich Richtiger ist:
        next unless defined $_;

        Struppi.

        1. Hell-O!

          Aber das ist nicht die Antwort auf die Frage, damit prüfst du, ob die Variabel ungleich undef, 0 oder kein Leerstring ist.

          Doch, genau das war die Frage (siehe Ursprungsposting, zweiter Teil).

          Vermutlich Richtiger ist:
          next unless defined $_;

          Nein, das hilft hier nicht weiter. Deine Abfrage wird stets wahr ergeben, denn defined testet ausschließlich auf den Rückgabewert 'undef' (siehe Perldoc: defined).

          Siechfred

          1. Aber das ist nicht die Antwort auf die Frage, damit prüfst du, ob die Variabel ungleich undef, 0 oder kein Leerstring ist.

            Doch, genau das war die Frage (siehe Ursprungsposting, zweiter Teil).

            Joh, falsch gelesen, bzw. nicht daran gedacht, das bei split keine undefinierten Werte rauskommen.

            Aber die doppelte Prüfung "if !" kann er sich trotzdem sparen.

            Struppi.

  2. Hell-O!

    wie kann ich in Perl überprüfen, ob eine Variable auch Inhalt besitzt?

    Eine if-Abfrage im Booleschen Kontext sollte helfen (siehe mein Posting vom 25.10.2005).

    Siechfred