Jaki jest najlepszy sposób na wysłanie wielu tablic, zmiennych, skrótów do podprogramu?Przekazywanie tablicy, skalaru i skrótu do podprogramu w Perlu
Prosty formularz, działa.
my $msg = &getMsg(1,2,3);
print $msg;
sub getMsg {
my($a, $b, $c) = @_;
}
Mam trudności z tej wersji i nie jestem pewien, jak wysyłać dane bezpiecznie do podprogramu bez użycia globalnym, który nie jest to, co chcę robić.
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
}
Zauważ, że przekazany hashref musi zostać usunięty z pamięci, gdy jest używany w sub '$ MSG. =" \ N $ str, $ x twoja wartość hash = $ h -> {$ x} -> [0] $ h- > {$ x} -> [1] "; ' – BarneySchmale