Anzeige:
Ergebnis 1 bis 5 von 5

Thema: [Perl] if mit genauer übereinstimmung

  1. #1
    Registrierter Benutzer
    Registriert seit
    04.07.2006
    Ort
    Herne
    Beiträge
    71

    [Perl] if mit genauer übereinstimmung

    wie formuliere ich eine if schleifen die nur reagieren soll wen der inhalt zweier variabelen exakt übereinstimmt
    und nicht nur teilweise ???

    zB.:
    my $test = "test";
    my $test1 = "test1";
    my $test2 = "test";

    if($test == $test1)# reagiert / soll es aber nicht
    if($test == $test2)# soll dann aber reagieren

  2. #2
    Registrierter Benutzer
    Registriert seit
    05.02.2006
    Beiträge
    116
    Du solltest "use warnings" verwenden...

    Das hier klappt:
    Code:
    if($test eq $test1){
        print '$test ist gleich $test1: ',$test," -- ",$test1,"\n";
    }
    elsif($test eq $test2){
        print '$test ist gleich $test2: ',$test," -- ",$test2,"\n";
    }

  3. #3
    Registrierter Benutzer
    Registriert seit
    04.07.2006
    Ort
    Herne
    Beiträge
    71
    das nenn ich mal ne schnelle antwort :-)
    danke

  4. #4
    Registrierter Benutzer
    Registriert seit
    04.07.2006
    Ort
    Herne
    Beiträge
    71
    was genau bewirkt dieses "use warnings" denn ???
    hab schon "use strict" drin weil das viele kleiner bugs verhindert :-)

    "use Glib qw/TRUE FALSE/" und "use Gtk2 '-init'" sind für die GUI auch noch mit drin

  5. #5
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    Wie der Name schon vermuten lässt, werden Dir bei Verwendung des Pragmas 'warnings' detaillierte Warnungen ausgegeben... In Deinem Fall zum Beispiel so etwas in der Art:

    Code:
    Argument "test2" isn't numeric in numeric eq (==) at test.pl line 10.
    Argument "test" isn't numeric in numeric eq (==) at test.pl line 10.
    Dann kommt auch ganz schnell drauf, dass der Vergleich mit == evtl. falsch ist.

    perldoc perlop:
    Code:
    Binary "==" returns true if the left argument is numerically equal to the right argument.
    Binary "eq" returns true if the left argument is stringwise equal to the right argument.
    HTH, Michael

Lesezeichen

Berechtigungen

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