Czytam „początku” książki Perl, i to daje te dwa oświadczenia:Lista Operator Pierwszeństwo w Perlu
print "Test one: ", 6 > 3 && 3 > 4, "\n";
print "Test two: ", 6 > 3 and 3 > 4, "\n";
Pierwsza linia drukuje nic z nowej linii, druga linia drukuje z 1 bez nowej linii.
Jestem zakłopotany z powodu wyniku. Według autora, druga wypowiedź daje wyjście dziwne, bo to tak jakby powiedzieć:
print ("Test two: ", 6 > 3) and 3 > 4, "\n";
Jednak dlaczego to pierwsza wypowiedź nie to samo? Myślałem, że ma to coś wspólnego z priorytetem druku. Model & & ma wyższy priorytet niż drukowanie, więc najpierw jest oceniany, a następnie drukowany. Natomiast "i" ma niższy priorytet niż druk, więc 6> 3 zostanie wydrukowane, drukowanie zwróci 1, a następnie zostanie ocenione przy pomocy "i". Jednak to naprawdę nie ma sensu.
Przeczytałem dokumentację Perla o tym, jak działa priorytet dla operatorów list, ale nadal nie rozumiem tego przykładu. Czy możecie przeanalizować te dwa stwierdzenia i powiedzieć, co jest drukowane jako pierwsze? Czy możesz również wyjaśnić, co oznacza dokumentacja Perla, gdy wymienia operatorów list jako "lewą" i "prawą?" Dzięki.
Dziękuję wszystkim za odpowiedzi. Rozumiem to teraz. Rzeczywiście robiłem to, co powiedział CJM i myślę, że są operatorzy list lewych i prawostronnych. Teraz, gdy rozumiem, co to znaczy, rozumiem całą sprawę.
ten kod wyświetla ostrzeżenia. i ma nawet funner zachowanie w Devel :: REPL – xenoterracide
@xenoterracide, to nie ma być dobry kod Perla. Próbuje tylko zilustrować, jak działa pierwszeństwo. – cjm
@ instymat w prawo ... chociaż zachowanie re.pl wydawało mi się na tyle złe, że mogłem zgłosić błąd. zobaczymy, co z tego wyniknie. – xenoterracide