Miriam: Was bedeutet "?" und ":" nach regulärem Ausdruck?

Hallo,

kann mir vielleicht jemand weiterhelfen was in folgender Perl-Zeile:

$test2 =~ /ABc/ ? q(//subdir) : $test1;

das Fragezeichen(?) und der Doppelpunkt(:) bedeuten ??? Bin langsam am Verzweifeln, weil ich dazu einfach nichts finde :-(

Danke schonmal!
Miri

  1. Hi,

    kann mir vielleicht jemand weiterhelfen was das Fragezeichen(?) und der Doppelpunkt(:) bedeuten ??? Bin langsam am Verzweifeln, weil ich dazu einfach nichts finde :-(

    perldoc perlop

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. perldoc perlop

      Danke für den Tipp, ich hab auch was dazu gefunden, aber so ganz hab ich's immer noch nicht kapiert:

      @a = @b ? @b : @c;

      Heißt das jetzt, dass dem @a das @b zugewiesen wird und falls @b nicht definiert ist, wird @c genommen, oder wie????

      In meinem Fall müsste das Beispiel ja so aussehen:

      @a = @b ? @c : @d;

      Und jetzt?? Bin immer noch so ratlos wie vorher... Hoffe es findet sich noch jemand, der mir das genauer erklären kann.

      Gruß, Miri

      1. Und jetzt?? Bin immer noch so ratlos wie vorher... Hoffe es findet sich noch jemand, der mir das genauer erklären kann.

        Ok, mein Fehler!
        Ich hab die perldoc nicht weit genug gelesen, sondern beim ersten Auftreten von ? und : aufgehört...

        Beim Weiterlesen bin ich jetzt auch zu dem If-then-else Teil gekommen.

        Also danke euch beiden für die Hilfe!

        Miri

        1. hallo,

          Und jetzt?? Bin immer noch so ratlos wie vorher... Hoffe es findet sich noch jemand, der mir das genauer erklären kann.

          das "?" (Frage) heisst er soll nach einem ausdruck suchen,dass nach dem fragezeichen geschrieben ist,wenn er es nicht findet dann soll er das nach dem ":" nehmen...klar?

          Grüsse vom Alain

          --
          ...ich sags ja immer "Frau und technick passt einfach nicht zusammen :)"
          1. hallo, sorry hab da was falsch geschrieben, also nochmal, er soll das suchen was vor dem "?" steht und falls das zutrifft soll er das ausführen was nach dem "?" kommt ansonsten das nach dem ":" ausführen,so ists richtig. Ist also abegürzt dasselbe wie if und else abfrage. Grüsse vom Alain

            --
            ...nichts ist so schlecht, als daß es nicht für irgend etwas gut wäre
  2. Hi,

    also ich kann zwar kein Perl, aber in PHP (in Javascript auch?) ist so was hier:

    (bedingung) ? anweisung : zweiteanweisung;

    einfach eine verkürzte Schreibweise von dem hier:

    if(bedingung) {
         anweisung;
      }
      else {
         zweiteanweisung;
      }

    vielleicht ist das ja auch in Perl so?

    probier doch mal in etwa (des is jetzt halt PHP syntax, sollte aber verständlich sein...):

    var a = 1;
      print (a == "1") ? "a ist 1" : "a ist nicht 1!";

    wenn Du da ein bisschen experimentiertst...

    Gruss,

    Guido

    $test2 =~ /ABc/ ? q(//subdir) : $test1;

    das Fragezeichen(?) und der Doppelpunkt(:) bedeuten ??? Bin langsam am Verzweifeln, weil ich dazu einfach nichts finde :-(

    Danke schonmal!
    Miri

    1. Hi,

      (bedingung) ? anweisung : zweiteanweisung;

      if(bedingung) {
           anweisung;
        }
        else {
           zweiteanweisung;
        }

      vielleicht ist das ja auch in Perl so?

      ich denke das könnte hinkommen, vielen Dank!!!

      Miri