use Data::Dumper; use warnings; use strict; open FOO, "test_data.txt" or die $!; my @A; while(){ chomp; push @A, split /\s*=\s*/, $_, 2 } my %H = @A; print Dumper(\%H);