2011年10月19日 星期三

Perl sub function 參數

Reference:
http://web.nchu.edu.tw/~jlu/cyut/perl-functions.shtml
http://stackoverflow.com/questions/10729015/pass-array-and-scalar-to-subroutine-perl

$a = 'aaa';
$b = 'bbb';
@c = ('51', 'M');
%d = (ID => '1201', range => 5, price => 50);

tt($a, \$b, \@c, \%d);
tt2($a, \$b, \@c, \%d);

sub tt {
$i = $_[0];
$j = $_[1]; # string pointer
@k = @{$_[2]}; # array pointer
$l = $_[3]; # hash pointer
print "$i\n";
print "$$j\n"; # 讀寫 string pointer 要多一個 $
foreach (@k) {
print "$_\n";
}
print "$l->{ID} $l->{range} $l->{price}\n";
}

# 另一個寫法
sub tt2 {
($i, $j, $k, $l) = @_;  # 先用 $k 接 array point
print "$i\n";
print "$$j\n"; # 讀寫 string pointer 要多一個 $
foreach (@$k) {   # 使用時用 @$k
print "$_\n";
}
print "$l->{ID} $l->{range} $l->{price}\n";
}

沒有留言:

張貼留言