according to perl doc the keys() function will take a reference stored in a scalar, but it doesn't seem to work for me. I printed my reference to make sure it's really a reference but it still doesn't seem to work. Does keys() take a reference? If so I'll check my syntax.
$returns{'do_stuff'} = &do_stuff; my $ref99 = $returns{'do_stuff'}->[2] print keys($returns{'do_stuff'}->[2] ) , "\n"; print keys($ref99) , "\n"; sub do_stuff { my $ip = "198.18.0.210"; my $uname = "admin"; my $pass = "admin1"; my $cmd = "show chassis fpc pic-status | no-more"; my $ssh; my @output; my @out_lines; my @pics; my @fpcs; my %chassis; my $reachable; my $hostname = "mx480-0-re0"; my $err; my $exit; #doing stuff.... my @returns = (0 , "Success" , \%chassis , \@fpcs); return(\@returns); }
here's the Hash in question dumperer'd. It's actually a hash-of-arrays-of-hashes-of-arrays.
$VAR1 = 'do_stuff'; $VAR2 = [ 0, 'Success', { 'Slot 1' => [ 'PIC 0', 'PIC 1', 'PIC 2', 'PIC 3' ], 'Slot 0' => [ 'PIC 0', 'PIC 1', 'PIC 2', 'PIC 3' ] } ];
In reply to How to keys($array_ref)? by networker2149
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |