use Data::Dumper; my $file = '/path/to/source.file'; my %hash; open(SOURCE,"<$file") or die $!; while(my $line = ){ my ($code) = $line =~ /CODE=([^,]+)/; my ($zustand) = $line =~ /Zustand=([^,]+)/; my ($kennung) = $line =~ /Kennung=([^,]+)/; my ($typ) = $line =~ /Typ=([^,]+)/; my ($ursprung) = $line =~ /Ursprung=([^,]+)/; $hash{$code} = {zustand => $zustand, kennung => $kennung, typ => $typ, ursprung => $ursprung}; } close SOURCE; print Dumper(\%hash); # zum Anschauen der Datenstruktur