Hallo, Astrid!
Ich nehme an du meinst mit Unterprogram eine Funktion. Am besten du übergibst Pointer. Das sind scalare die nur die Addresse auf einen Speicherbereich beinhalten (grob gesagt).
Wie das aussehen kann soll folgendes Program zeigen:
use strict;
use warnings;
use feature qw/say/;
my $hash = {};
my $array = [
'maeh',
'naja',
'top',
];
$hash = do_what($hash, $array);
for my $hash_key (keys %{$hash}) {
say "Key: $hash_key Value: " . $hash->{$hash_key};
}
sub do_what {
my ($hash, $array) = @_;
for my $item (@$array) {
$hash->{$item} = 1;
}
return $hash;
}
Grüße
Wolfgang