明辉站/网站教程/内容

本文教你Perl(5)

网站教程2024-02-04 阅读
[摘要]以前我总是给出具体的例子,但这次给你们出一道足以使你们头发变白,身心疲惫的难题: #!/usr/bin/perl # A Political evaluation script $a=“A1” $b=“George”; if($a>$b)print $a wordinake a better...
   以前我总是给出具体的例子,但这次给你们出一道足以使你们头发变白,身心疲惫的难题:
#!/usr/bin/perl
# A Political evaluation script

$a=“A1”
$b=“George”;
if($a>$b)print $a wordinake a better Presideut

If($a<$b) print $b word make a betler Presiclent
;
If($a=$b)Print $a or $b, tlere’s no Diflereue
;
输出结果表明其中并没有什么不同,这也许只反映出一个政治性的现实,但我们比较出的结果又是什么呢?对了,我们应该使用字符串操作,不对吗?
#!/usr/bin/perl
# A political evaluation script

$a = "Al";
$b = "George";

if ( $a > $b) { print "$a would make a better President.
"; }
if ( $a < $b) { print "$b would make a better President.
"; }
if ( $a==$b) { print "$a or $b, there's no difference...
"; }

呵呵,输出表明它们俩没有什么不同的地方。这也许是政治上的真实反映,但对我们期望的比较输出却……哦,对了,我们应该使用字符串操作符,恩?

#!/usr/bin/perl
# A political evaluation script

$a = "Al";
$b = "George";

if ( $a gt $b) { print "$a would make a better President.
"; }
if ( $a lt $b) { print "$b would make a better President.
"; }
if ( $a eq $b) { print "$a or $b, there's no difference...
"; }

现在,比较操作符才能正确的工作。(现实世界的逻辑却并非如此……我离题了。)
顺便提一下,在第一个例子中为什么Perl会认为“Al”和“George”是等值的呢?什么时候程序中参进了政治观点?
很重要的一点原因是,它要依赖Perl分辨“真(true)”与“假(false)”的方法。可以进行一些试验,如“if”,“while”,“wntil”等,根据实验的结果,我们可以理解这一点。

……

相关阅读