perl和C++使用花括号一点不同

上次在和search团队交流perl时,听说部分search同学是从C++开发到perl开发的,使用花括号时都会遇到下面这个问题,我还是整理一下,贴出来。

在perl中,for循环的内容,必须用花括号括起来,不然就会报错;但在C++中,如果for循环的内容只有一行,可以用花括号括起来,也可以不用。

perl正确写法:

#!/usr/bin/perl
use warnings;
use strict;
my $sum;
for(my $i=0;$i<10;$i++){
  $sum+=$i;
}
print "sum is ".$sum;
[test@mac1 ~]
$perl add.pl
sum is 45

perl错误写法:

#!/usr/bin/perl
use warnings;
use strict;
my $sum;
for(my $i=0;$i<10;$i++)
  $sum+=$i;
print "sum is ".$sum;
$perl add.pl
Scalar found where operator expected at add.pl line 6, near ")
  $sum"
        (Missing operator before $sum?)
syntax error at add.pl line 6, near ")
  $sum"
Execution of add.pl aborted due to compilation errors.

C++两种写法都可以:

#include <iostream>  
#include <string> 
//using std::cin;
using std::cout;
using std::endl;
using std::string;
 
int main()
{
        int sum=0;
        for(int val=1;val<10;val++)
                sum+=val;
        cout<<sum<<endl;
        return 0;
}
[test@mac1 ~]
$./add
45
#include <iostream>
#include <string>
//using std::cin;
using std::cout;
using std::endl;
using std::string;
 
int main()
{
        int sum=0;
        for(int val=1;val<10;val++){
                   sum+=val;
}
        cout<<sum<<endl;
        return 0;
}
[test@mac1 ~]
$./add
45

3 Responses to “perl和C++使用花括号一点不同”

  1. 陈子说道:

    #!/usr/bin/perl
    use warnings;
    use strict;
    my $sum;
    for(my $i=0;$i<10;$i++){
    $sum+=$i;
    }
    print "sum is ".$sum;
    可以写成
    #!/usr/bin/perl
    use warnings;
    use strict;
    my $sum;
    $sum+=$_ for 0..10;
    print "sum is ".$sum;
    这样就不用花括号了~

  2. admin说道:

    是的,可以简写。

Post a Comment