Thursday, September 20, 2007

learning Perl's subroutine


#! /usr/bin/perl -w

sub marine {
$n += 1;
print "subroutine marine $n \n";
}

&marine;
&marine;
$x = &marine;
print $x;
print "\n\n";

$x = 3;
$y = 4;

sub multiply {
$x * $y;
}

print &multiply;
print "\n";
$z = 5 * &multiply;
print $z;

@_ = (4, 5, 6, 8, 7);
sub add {
$_[0] + $_[1];
}

print "\n";
print &add(1, 2, 3);
print "\n";
print add(1, 2, 3);
print "\n";
print &add(1);
print "\n";
print add(1);
print "\n";
print &add; # 除 非 调 用 的 子 程 序 前 有 & 而 后 面 没 有 括 号 ( 或 者 没 有 参 数 ) , 此 时 @_ 从 此 调 用 者 的 上 下 文 ( context ) 得 到 。 这 通 常 不 是 个 好 主 意 , 但 有 时 很 有 用 。
print "\n";
print add;
print "\n\n";

sub max {
my($m) = shift @_;
foreach (@_) {
my $cur = $_; # can use "my" in foreach
print $cur;
print "\n";
if ($_ > $m) {$m = $_}
}
$m;
}
print &max;

No comments :