用perl子函数打印欢迎信息

回复 收藏
要求:写一个名为greet的子函数,当给定一个名字作为参数时,打印出欢迎他的信息,并告诉之前已经迎接了哪些人。
如,如果运行
greet("a");
greet("b");
greet("c");
greet("d");
结果应该为:
Hi a, you are the first one here.
Hi b, I've seen: a.
Hi c, I've seen: a b.
Hi d, I've seen: a b c.

代码如下:
  1. #! /usr/bin/perl
  2. sub greet {
  3.     my ($na)=@_;
  4.     @a=qw/a b c d e/;
  5.     my ($n)=$#a;
  6.     for (0..$n) {
  7.         if ($na eq $a[$_]) {
  8.             $m=$_;
  9.         }
  10.     }
  11.     if ($m == 0) {
  12.         print "Hi $a[$m], you are the first one here.\n";
  13.     }
  14.     else {
  15.         my ($n2)=$m - 1;
  16.         @b=undef;
  17.         for (0..$n2) {
  18.             push (@b,$a[$_]);
  19.         }
  20.         print "Hi $a[$m], I've seen: @b.\n";
  21.     }
  22. }
  23. greet("a");
  24. greet("b");
  25. greet("c");
  26. greet("d");
2012-11-13 15:28 举报
已邀请:
0

iiwoai

赞同来自:

好麻烦 {:4_111:}
0

阿铭 管理员

赞同来自:

哈哈,我是一点功能一点功能的拼凑的,等写完整个子函数时,发现竟然写了这么多行。乐在其中!

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: