PerlMonks -
I'm trying to create an array of switch VLANs (by number) with additional characteristics such as a name, description, IP address, etc. I would like the VLANs identified by their number so I can sort and then print. My code below only creates a file containing the text I am specifying in the quotes, and none of the variables. STDERR complains that I'm using uninitialized variables.
%myarray = (vlans => {[
{number => "112",
name => "JP-WIRELESS",
description => "JP-WIRELESS",
ip => "192.168.207.1",
mask=> "255.255.255.0"
},
{number => "2113",
name => "JP-IDF1-DATA",
description => "JP-IDF1-DATA",
ip => "10.136.113.1",
mask=> "255.255.255.0"
}
]}
);
sub print_array {
unlink "vlandatabase.txt";
open (MYFILE,'>',"vlandatabase.txt");
print MYFILE %myarray;
print MYFILE "VLAN number:$myarray{vlans}[0]{number}\n";
print MYFILE "VLAN name:$myarray{vlans}[0]{name}\n";
print MYFILE "VLAN description:$myarray{vlans}[0]{description}\n"
+;
print MYFILE "VLAN ip address:$myarray{vlans}[0]{ip}\n";
print MYFILE "VLAN subnet mask:$myarray{vlans}[0]{mask}\n";
close MYFILE;
}
Once I can understand how to do this, how do I loop through and print?