Cách tốt nhất để gửi nhiều mảng, biến, băm cho một chương trình con là gì?Truyền mảng, vô hướng và băm đến chương trình con trong Perl
Biểu mẫu đơn giản, hoạt động.
my $msg = &getMsg(1,2,3);
print $msg;
sub getMsg {
my($a, $b, $c) = @_;
}
Tôi đang gặp khó khăn với phiên bản này và không chắc chắn cách gửi dữ liệu an toàn cho chương trình con mà không sử dụng toàn cầu mà không phải là điều tôi muốn làm.
my @array = ('a','b','c');
my $str = "Hello";
my %hash = (
'a' => ['100','nuts'],
'b' => ['200','bolts'],
'c' => ['300','screws'],
);
my $msg = getMsg(@array, $str, %hash);
print $msg;
sub getMsg {
my (@a, $s, %h) = @_;
my $MSG;
foreach my $x (@a) {
$MSG .= "\n$str, $x your hash value = $h{$x}[0] $h{$x}[1]";
}
return $MSG
}
Lưu ý rằng hashref được thông qua cần phải được hủy đăng ký khi được sử dụng trong phụ '$ MSG. =" \ N $ str, $ x giá trị băm của bạn = $ h -> {$ x} -> [0] $ h- > {$ x} -> [1] "; ' – BarneySchmale