hotti: Multidimensionale Hashes komplett dereferenzieren?

Beitrag lesen

Moin moin,

Perl macht mich mal wieder mit seinen Referenzen fertig...... HELP!!

Du machst Dir selbst das Leben schwer...

my %I;
$I{'ce'}{'lan'}{1}{'ifc'}="FastEthernet0/2-3";
$I{'ce'}{'lan'}{1}{'ip'}="1.1.1.1";
$I{'ce'}{'lan'}{2}{'ifc'}="GigabitEthernet0/1-2";
$I{'ce'}{'lan'}{2}{'ip'}="2.2.2.2";

Nenene, so wird dat nüschd. Definiere IF-Objekte, am Besten über eine eigene Klasse und new();

  
package Interface; # my custom class for Interfaces  
  
# Constructor  
sub new{  
 my $class = shift;  
 my $p     = shift; # Parameter  
  
 my $self = {  
   IP => $p->{IP},  
   NAME => $p->{NAME},  
   DEST => $p->{DEST},  
 };  
  
 return bless $self, $class;  
}  
package main;  
my $ifObj = Interface->new({  
 IP => '10.0.0.1',  
 NAME => 'Fa0/0',  
 DEST => 'Kunden-LAN',  
});  
  
# usw.  

Mehrere Interfaces kannst Su dann zusammenfassen in einem %hash, z.B. alle Interfaces eines Routers oder Switch.

%router;
$router{'lan1'} = $ifObj; # das Objekt von weiter oben
$router{LAN_2} = $nochnIfObj;
$router{WAN} = $serIfObj;

-> So gehts bischen besser mit den Referenzen ;-)

Und dann schauen wir mal weiter...

Hottü