Philipp: Überprüfen ob Skalar Zahl oder Zeichenkette ist

Hallo,

wie kann ich überprüfen, dass der Inhalt einer Variable _keine_ Zahl ist? Gibt es dafür einen bestimmten Ausdruck oder Befehl?

Gruss
Philipp

  1. Hallo

    Wär doch ne möglichkeit, oder?

    if($Skalar =~ /[0-9]/)
       {
       }
      else
       {
        print "So, ich bin keine Zahl!!!\n";
        }

    Hoffentlich hilfts!!!

    Gruss
    Stefan Ludwig

    1. if($Skalar =~ /[0-9]/)
         {
         }
        else
         {
          print "So, ich bin keine Zahl!!!\n";
          }

      Hi,

      damit würde er mir aber sagen, dass "Ich bin 100 Jahre alt" eine Zahl ist, oder nicht?

      Gruss
      Philipp

      1. if($Skalar =~ /[0-9]/)
           {
           }
          else
           {
            print "So, ich bin keine Zahl!!!\n";
           }

        Hi auch,

        damit würde er mir aber sagen, dass "Ich bin 100 Jahre alt" eine Zahl ist, oder nicht?

        Nein, damit sucht er, ob es in deiner Variable eine Zahl hat. Wenn er eine findet, macht er nix, wenn er keine Findet,
        printet er!
        Somit also ganz klar: Nein!

        Tschüss!
        Stefan

        1. Hi,

          damit würde er mir aber sagen, dass "Ich bin 100 Jahre alt" eine Zahl ist, oder nicht?

          Nein, damit sucht er, ob es in deiner Variable eine Zahl hat. Wenn er eine findet, macht er nix, wenn er keine Findet,
          printet er!

          eine fehlende Reaktion sagt also aus, daß es sich um eine Zahl handelt.

          Somit also ganz klar: Nein!

          Da die Reaktion bei obigem Teststring fehlt also ganz klar: Ja!

          Cheatah

      2. Hallo Philipp,

        if($Skalar =~ /[0-9]/) {
        }
        else {
            print "So, ich bin keine Zahl!!!\n";
        }
        damit würde er mir aber sagen, dass "Ich bin 100 Jahre alt" eine Zahl ist, oder nicht?

        Korrekt. Korrekter wäre imho $Skalar =~ /^\d+$/;
                                                     ^...Ende der Variable
                                                    ^....mindestens _eine_
                                                   ^.....Zahl
                                                 ^.......Anfang der Variable
        Das birgt allerdings das Problem, daß nur Ganzzahlen erkannt werden. Falls Du auch Kommazahlen erkennen möchtest siehe:
        <http://www.activestate.com/Products/ActivePerl/docs/lib/Pod/perlfaq4.html#how do i determine whether a scalar is a number/whole/integer/float>

        Gruß AlexBausW

        Please visit my SELFvisitingcard @ http://www.atomic-eggs.com/selfspezial/daten/150.html

    2. Hi,

      if($Skalar =~ /[0-9]/)

      nicht _ganz_ richtig ;)

      if($skalar =~ /[1]+$/)

      wäre richtig.

      mfg
      CK1

      <img src="http://wwwtech.de/images/banner.jpg" alt="">
      http://wwwtech.de/
      http://wwwtech.de/moorhuhn/


      1. 0-9 ↩︎

      1. Hi,

        if($Skalar =~ /[0-9]/)

        nicht _ganz_ richtig ;)

        if($skalar =~ /[1]+$/)

        wäre richtig.

        Immer diese Besserwisser.... :-))))
        Ich bin doch selbst noch Anfänger und muss mich erst noch in die hohe Kunst des Perlens einfinden ;)
        Aber trotzdem danke,
        es gibt nicht mehr allzu viele _aufmerksame_ Poster, die dann noch unbedingt nen Verbesserungvorschlag
        bringen müssen.
        Seis drum:
        Schönen Abend noch
        Slu :-))


        1. 0-9 ↩︎

  2. Hi,

    wie kann ich überprüfen, dass der Inhalt einer Variable _keine_ Zahl ist? Gibt es dafür einen bestimmten Ausdruck oder Befehl?

    *seufz*

    perldoc perlfaq4
    "How do I determine whether a scalar is a number/whole/integer/float?"

    Sowas steht alles in der Doku. Sie ist nicht nur existent, Leute, sie ist hervorragend.

    Cheatah

  3. Hi,

    Schon fast deprimierend, dass man nicht auf die naheliegenste Quelle PerlFAQ gekommen ist.

    Danke für Eure Antworten, hat mir weitergeholfen.

    Ach ja, mal noch 'nen ganz speziellen Dank an Cheatah, der extrem oft, sei es direkt oder indirekt (Archiv) eine Antwort auf mein Problem gegeben hat.

    Gruss
      Philipp :-)