Hallo,
habe ein kleines Problem beim derefernzieren von Hashes in einer subroutine.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# filerinfohash
my %finfo;
my $hashref=\%finfo;
# füllen mit infos
&info_abfrage($filer,$hashref,@vfilerlist);
# output
&output($hashref);
##################################################################
sub info_abfrage {
my ($name,$ref,@liste)=@_;
print ("Ausgabe: Name=> $name, Liste: @liste, hashref=> *$ref* \n");
foreach my $vfilern (sort @liste)
{
open (ABFRAGE,"befehlsliste | ") || die "cannot execute";
while (<ABFRAGE>)
{
chomp (my $r2=$_);
my ($option,$info)=split (/=/,$r2);
if ( $info eq "" )
{ $info = "NOT SET"; }
if ($option =~ /domainname/ )
{ $$ref{$name}{$vfilern}{'dnsdomain'}="$info"; }
elsif ( $option =~ /resolvconf/ )
{ $$ref{$name}{$vfilern}{'dnsserver'}="$info"; }
elsif ( $option =~ /wins/ )
{ $$ref{$name}{$vfilern}{'winsserver'}="$info"; }
else
{ print ("Wrong option $option \n"); }
} # end while abfrage
close (ABFRAGE);
}# end foreach
}
##################################################################
sub output {
my ($refz)=@_;
foreach my $serv (sort keys %{$refz})
{
print ("\nFiler $serv:\n");
foreach my $vfiler (sort keys %{$refz{$serv}})
{
}
}
} # end of sub
Das Problem liegt bei der ausgabe. den zweiten foreach schluckt er nicht, das derefernzieren funkt dort nicht.