【发布时间】:2011-04-17 21:48:05
【问题描述】:
Perl:: 什么是:
1. (52-80)*42
2. 42*(52-80)
回答:
1. -28
2. -1176
为什么?
请尽情地解释/证明这一点!
#!/usr/bin/perl
use strict;
print 42*(52-80) , "\n";
print ((52-80)*42) , "\n";
print (52-80)*42 , "\n";
print "\n";
my $i=(52-80)*42;
print $i, "\n";
输出:
> -1176
> -1176-28
> -1176
【问题讨论】:
-
鉴于您的输出中没有足够的换行符,我认为这不是您实际运行的代码,是吗?
-
@Ben 试试看。它确实产生了该输出。提示:这不是数学或优先级问题,而是括号解析问题...
-
标题和问题当然是错误的。
-28的结果取决于更大的代码 sn-p。 -
你错过了关键的
use warnings; -
我们在Learning Perl 中专门讨论了这个问题。人们可能会认为阅读这本书是在浪费时间,但我想知道人们不阅读它浪费了多少时间。
标签: perl operators printing math