use Data::Dumper ; my %devices; for my $line (@df) { use Data::Dumper ; my %info; print Dumper (\%info); @info{@headers} = split /\s+/, $line; # note the hash slice $info{capacity} = _percentage_to_decimal($info{capacity}); $devices{ $info{mount} } = \%info; print Dumper(\%devices); }