Archiv verlassen und diese Seite im Standarddesign anzeigen : [Perl] if mit genauer übereinstimmung
Chakotay
08-11-2006, 09:49
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
Du solltest "use warnings" verwenden...
Das hier klappt:
if($test eq $test1){
print '$test ist gleich $test1: ',$test," -- ",$test1,"\n";
}
elsif($test eq $test2){
print '$test ist gleich $test2: ',$test," -- ",$test2,"\n";
}
Chakotay
08-11-2006, 09:59
das nenn ich mal ne schnelle antwort :-)
danke
Chakotay
08-11-2006, 10:23
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
michael.sprick
08-11-2006, 10:58
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:
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:
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
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.