my @tmpFields = split (/\(?(\d+)\*(\w+)\)\s+/, $line); #### i = 0 , Summary 51.58.214.48/dw109998bsw45 -> i = 1 , 1 i = 2 , Cisco_Power_Supply i = 3 , i = 4 , 1 i = 5 , Cisco_CPU_Unit i = 6 , i = 7 , 7 i = 8 , IETF_IF i = 9 , i = 10 , 1 i = 11 , Cisco_Fan_Unit i = 12 , i = 13 , 1 i = 14 , 1213_Device i = 15 , i = 16 , 2 i = 17 , Cisco_Memory_Pool #### my @tfields = grep {!/\s+/} @tmpFields; #### print "array length: " , scalar(@tfields), "\n", Dumper (@tfields); #### array length: 12 $VAR1 = '1'; $VAR2 = 'Cisco_Power_Supply'; $VAR3 = '1'; $VAR4 = 'Cisco_CPU_Unit'; $VAR5 = '7'; $VAR6 = 'IETF_IF'; $VAR7 = '1'; $VAR8 = 'Cisco_Fan_Unit'; $VAR9 = '1'; $VAR10 = '1213_Device'; $VAR11 = '2'; $VAR12 = 'Cisco_Memory_Pool'; #### my %hFields = @tfields; #### next if ($line !~ /^Summary/); my @tmpFields = split (/\(?(\d+)\*(\w+)\)/, $line); my @tfields = grep {!/\s+/} @tmpFields; my %hFields = @tfields;