Perl中的逻辑运算符和赋值

时间:2017-01-04 17:29:07

标签: perl

C代码

#include <stdio.h>

int main(void) {
    int first = 10;
    int second = 20;
    int third = 30;

    int x = ((first == second) || third);

    printf ("%d", x);
}

Output: 1

Perl代码

#!/usr/bin/perl
use strict;
use warnings;

my $first = 10;
my $second = 20;
my $third = 30;

my $x = (($first == $second) || $third);

print $x;

Output: 30

Perl为什么会这样?

1 个答案:

答案 0 :(得分:5)

因为它可以。由于C的类型系统,C逻辑运算符无法返回像Perl那样有用的东西。

考虑:

my $x = $arg || $default;

在C中,你必须写更复杂的

int x = arg ? arg : default;