W innych językach chciałbym napisaćDlaczego "x = a lub b" nie działa w Perlu?
testvar = onecondition OR anothercondition;
mieć testVar być prawdziwe, jeśli którykolwiek z tych warunków jest. Ale w Perlu to nie działa zgodnie z oczekiwaniami.
Chcę sprawdzić warunek, w którym zmienna content jest pusta lub pasuje do konkretnego regex. Mam ten przykładowy program:
my $contents = "abcdefg\n";
my $criticalRegEx1 = qr/bcd/;
my $cond1 = ($contents eq "");
my $cond2 = ($contents =~ $criticalRegEx1);
my $res = $cond1 or $cond2;
if($res) {print "One or the other is true.\n";}
Spodziewałbym się, że $ res będzie zawierało "1" lub coś, co okaże się prawdziwe, gdy testowane z if(). Ale zawiera pusty ciąg.
Jak mogę to osiągnąć w Perlu?
Zapoznaj się z [operator tabeli pierwszeństwa] (http: //perldoc.perl.org/perlop.html#Operator-Precedence-and-Associativity). Porównaj 'lub' z '||'. – user2864740