小编elf*_*ess的帖子

Perl布尔,否定(以及如何解释)?

我是新来的.在阅读了如何询问和格式化之后,我希望这将是一个好问题.我对perl不是很熟练,但它是我最熟悉的编程语言.

我尝试将Perl应用到现实生活中,但我没有得到很好的理解 - 尤其不是来自我的妻子.我告诉她:

如果她晚上没给我3杯啤酒,那就意味着我喝了零(或没有)啤酒.

你可能已经猜到了,没有太大的成功.:(

事实上,现在.来自perlop:

一元"!" 执行逻辑否定,即"不".

语言,有什么boolean类型(什么只有两个"值")是可以的:

如果它不是一个值 - > 必须是另一个值.

很自然地:

!true  -> false
!false -> true
Run Code Online (Sandbox Code Playgroud)

但Perl不具有boolean变量-只有一个truth system,whrere一切都不是0,'0' undef,''为TRUE.当将逻辑否定应用于非逻辑值(例如数字)时出现问题.

例如,如果某个数字不是3,那意味着它是零或空,而不是现实生活意义,如果某事物不是3,则意味着它可以是3以外的任何数字(例如也为零).

那么下一个代码:

use 5.014;
use Strictures;

my $not_3beers = !3;

say defined($not_3beers) ? "defined, value>$not_3beers<" : "undefined";
say $not_3beers ? "TRUE" : "FALSE";

my $not_4beers …
Run Code Online (Sandbox Code Playgroud)

perl

7
推荐指数
2
解决办法
1万
查看次数

标签 统计

perl ×1