2015-09-03 4 views
0

Я новичок в Perl и пытаюсь использовать следующий код для выполнения оператора печати, если он удовлетворяет двум условиям.Как использовать оператор && в Perl

if ($ARGV[0] eq "test") && ($ARGV[1] eq "test1"){ 
print"test and test1 Selected\n" 
} 

Как настроить код так, чтобы он не выдавал никаких ошибок?

+1

См. Также [perlop] (http://perldoc.perl.org/perlop.html). – serenesat

+1

помещает первое и второе условие внутри() в оператор if – Rajarshi

ответ

12

Синтаксис if утверждения:

if (CONDITION) BLOCK 

так, если ваше состояние

($ARGV[0] eq "test") && ($ARGV[1] eq "test1") 

, то вы бы использовать

if (($ARGV[0] eq "test") && ($ARGV[1] eq "test1")) { ... } 

Тем не менее, эти круглые скобки не являются потому что && предназначен для использования именно так.

if ($ARGV[0] eq "test" && $ARGV[1] eq "test1") { ... } 

Я не знаю, почему два других предложил маскировка && с низшим приоритетом and. Символы причины используются для разделителей (например, ,, ;, { ... } и т. Д.), И это связано с тем, что упрощает поиск границ в коде с одного взгляда, улучшая читаемость.

Таким образом, наиболее часто используемое соглашение на сегодняшний день является использование or и and для управления потоком (or die, or next, or return и т.д.), а также использовать || и && в выражениях (как вы это делали).

3

Вы можете поставить эти условия внутри из-if.

if (($ARGV[0] eq "test") && ($ARGV[1] eq "test1")) { 
    print"test and test1 Selected\n" 
} 

(Так что я сделать ненужное дополнение с грубым описанием о логических операторов конъюнкции были некоторые запутанные проблемы и вызвало критику, что я удалил его полностью.)

Для вашего вопроса здесь, я думаю, что просто гнездование использование кронштейна пункт.

+4

'' и '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' Важная часть - брекетинг. Я думаю, что ваш ответ будет улучшен, если вы сделаете это более ясным. – Sobrique

+0

@Sobrique Спасибо за ваш совет. Я попытался улучшить свой ответ с вашим предложением. – hata

+0

'' и 'обычно не рекомендуется для' &&'; ', обычно используется 'and' и' or' для управления потоком (например, 'или die'), но вы не можете просто заменить все экземпляры' && 'и' || 'с' и 'и 'или' волей-неволей. '$ x = 1 и 0;' устанавливает '$ x' в 1; '$ x = 1 && 0;' устанавливает '$ x' до 0. См. обсуждение в [perlop] (http://perldoc.perl.org/perlop.html#Logical-or-and-Exclusive-Or). – ThisSuitIsBlackNot

Смежные вопросы