Как я использую логические переменные в Perl?

Этот работает очень хорошо для меня.

   $("#checkall").click(function() {
       var fruits = $("input[name=fruits\\[\\]]");
        fruits.prop("checked", $(this).prop("checked"));
    });
218
задан Chad DeShon 24 June 2009 в 10:17
поделиться

3 ответа

В Perl следующие выражения в условных выражениях оцениваются как ложные:

0
'0'
undef
''  # Empty scalar
()  # Empty list
('')

Остальные верны. Нет голых слов для истина или ложь .

282
ответ дан 23 November 2019 в 04:11
поделиться

Perl не имеет собственного логического типа, но вы можете использовать сравнение целых чисел или строк, чтобы получить такое же поведение. Пример Алана - хороший способ сделать это, используя сравнение целых чисел. Вот пример

my $boolean = 0;
if ( $boolean ) {
    print "$boolean evaluates to true\n";
} else {
    print "$boolean evaluates to false\n";
}

Одна вещь, которую я проделал в некоторых своих программах, - это добавление того же поведения с использованием константы:

#!/usr/bin/perl

use strict;
use warnings;

use constant false => 0;
use constant true  => 1;

my $val1 = true;
my $val2 = false;

print $val1, " && ", $val2;
if ( $val1 && $val2 ) {
    print " evaluates to true.\n";
} else {
    print " evaluates to false.\n";
}

print $val1, " || ", $val2;
if ( $val1 || $val2 ) {
    print " evaluates to true.\n";
} else {
    print " evaluates to false.\n";
}

Строки, отмеченные как «использовать константу», определяют константу с именем true, которая всегда принимает значение 1, и константа с именем false, которая всегда оценивается как 0. Из-за того, как константы определены в Perl, следующие строки кода также не работают:

true = 0;
true = false;

В сообщении об ошибке должно быть указано что-то вроде «Не удается изменить константу в скалярном присваивании. "

Я видел это в одном из комментариев, который вы спрашивали о сравнении строк.

58
ответ дан 23 November 2019 в 04:11
поделиться

I recommend use boolean;. Однако вам придется установить модуль boolean из cpan.

16
ответ дан 23 November 2019 в 04:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: