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为什么会这样?
答案 0 :(得分:5)
因为它可以。由于C的类型系统,C逻辑运算符无法返回像Perl那样有用的东西。
考虑:
my $x = $arg || $default;
在C中,你必须写更复杂的
int x = arg ? arg : default;