Learning Perl chapter 4 练习题

原文发表在网易博客 2010-11-06 13:07:36

第1题和第2题

#!perl -w 
#chapter 4 , exercise one and two 
use strict; 
sub total{ 
    my $sum; 
    foreach $_ (@_){ 
        $sum += $_; 
        } 
        $sum; 
    } 
my @fred=(1,3,5,7,9); 
print "sum of (@fred) is:\t ",&total(@fred),"\n";

print "sum of 1 to 100 is :\t",&total(1..100),"\n";

第3题

#!perl -w 
#chapter 4 , exercise 3 
use strict; 
sub getSum{ 
    my $sum=0; 
    foreach $_ (@_){ 
        $sum+=$_; 
        } 
    $sum; 
    } 
sub getAverage{ 
    my @abovelist=(); 
    my $length=@_; 
    my $average=-1; 
    $average=&getSum(@_)/$length; 
    } 
sub above_average{ 
    my @abovelist; 
    my $average=&getAverage(@_); 
    foreach $_ (@_){ 
        if($_ > $average){ 
            push @abovelist, $_ 
            } 
        } 
    return @abovelist; 
    } 
my @fred=&above_average(1..10); 
print "above the average in one to ten is :(@fred)\n";

 

第4题

#!perl -w 
use strict; 
use 5.010; 
sub greet1{ 
    state $lastPerson=""; 
    if(@_ ==1 ){ 
        if($lastPerson ne ""){ 
            print "Hi,$_[0]!$lastPerson is also here.\n"; 
            }else{ 
                print "Hi,$_[0]!You are the first one here!\n"; 
                } 
        $lastPerson=$_[0]; 
        } 
    } 
&greet1("leipei"); 
&greet1("ada");

 

第5题

#!perl -w 
use strict; 
use 5.010; 
sub greet2{ 
    state @personlist; 
    if(@_ == 1){ 
        if(@personlist >0){ 
            print "Hi,$_[0]! I have seen:@personlist\n"; 
            }else{ 
                print "Hi,$_[0]! You are the firt one here.\n"; 
                } 
        push (@personlist,$_[0]); 
        } 
    } 
greet2("Fred"); 
greet2("Barney"); 
greet2("Wilma"); 
greet2("Betty");



本文转自leipei博客园博客,原文链接:http://www.cnblogs.com/leipei2352/archive/2011/05/25/2057471.html,如需转载请自行联系原作者

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值