use warnings;
use strict;
use Data::Dumper;
my @array;
my %hash = ( abc=>123 );
push @array, \%hash;
%hash = ( def=>456 );
push @array, \%hash;
print Dumper(\@array);
print $array[1]{def}, "\n"; # ok
print $array[0]{abc}, "\n"; # nope! hash was cleared!
__END__
$VAR1 = [
{
'def' => 456
},
$VAR1->[0]
];
456
Use of uninitialized value in print at test.pl line 13.
####
my $lag_detail;
foreach my $line ( split( /\n/, $c ) ) {
if ( $line =~ m/someregex/ ) {
if ( exists $lag_detail->{ports} ) {
push( @{ $self->{lags} }, $lag_detail );
}
$lag_detail = { lagid => $lag, lagdesc => $4,
operationstate => $3, adminstate => $2 };
}
}
####
foreach my $line ( split( /\n/, $c ) ) {
my %lag_detail;
...