open $INPUT, $FileName or die $!; while( <$INPUT> ) { ....... /^($Ref2General->[$i_gdes])/ and do { chomp; s/^($Ref2General->[$i_gdes]:\s+)(.*)//; s/\t+//gm; if ( $2 ) { push( @{ $GeneralInfo{$Ref2General->[$i_gdes]} }, $2); # + #-- Displaying of 4 lines of text still works fine #-- The way is: $Array[ Nbr. ] } else { push @{ $GeneralInfo{$Ref2General->[$i_gdes]} }, $NotNamed; } next; }; ....... /^$Ref2General->[$i_gnoi]/ and do { next if ( $GeneralInfo{$Ref2General->[$i_gnov]} eq $NoSNMP ); my $NodeVendor=$GeneralInfo{$Ref2General->[$i_gnov]}; my $HostName=$GeneralInfo{$Ref2General->[$i_ghos]}; chomp; s/^(\s*$Ref2General->[$i_gnoi]:\s*)(.*)//; $GeneralInfo{$Ref2General->[$i_gnoi]}=$2; foreach my $Key ( keys %GeneralInfo) { $NodeInfo{$NodeVendor}{$HostName}{$Key} = $GeneralInfo{$Key}; } #-- This one for debug tests: foreach my $Key1 ( keys %NodeInfo) { foreach my $Key2 ( keys %{$NodeInfo{$Key1}} ) { foreach my $Key3 ( keys %{$NodeInfo{$Key1}{$Key2}} ) { print $Key3, "\t", $NodeInfo{$Key1}{$Key2}{$Key3}, "\n"; if ( $Key3 eq "DESCRIPTION" ) { # foreach my $val( @{ $NodeInfo{$Key1}{$Key2}{$Key3} } ){ print __LINE__, "\t", ${ $NodeInfo{$Key1}{$Key2}{$Key3} }[ 0 ] ; print __LINE__, "\t", ${ $NodeInfo{$Key1}{$Key2}{$Key3} }[ 1 ] ; # + print __LINE__, "\t", ${ $NodeInfo{$Key1}{$Key2}{$Key3} }[ 2 ] ; # + print __LINE__, "\t", ${ $NodeInfo{$Key1}{$Key2}{$Key3} }[ 3 ] ; # } print "\n"; } } } } }; ....