#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my %hash; my @array = ('KEYWORD = wert # Kommentar', 'KEYWORD2 = wert2 # Kommentar2', 'KEYWORD3=wert3#Kommentar3', 'KEYWORD4 =wert4 # Kommentar4', ); for (@array) { my ($key, $val, $com) = m~^(.+?)\s*=\s*(.+?)\s*#\s*(.*)$~; $hash{$key} = { wert => $val, kommentar => $com }; } print Dumper(\%hash);