#!/usr/bin/perl my $line = ; chomp $line; my $options = {}; for (split /(?=\s\S+\s*=)/, $line) { my ($option, $value) = split /=/, $_; $option =~ s/^\s+//; $option =~ s/\s+$//; $options->{$option} = $value; } use Data::Dumper; print Dumper $options; __DATA__ option1 = value0 value1 value2 option3 =value3 value4 option2=value5 __END__ $VAR1 = { 'option1' => ' value0 value1 value2', 'option3' => 'value3 value4', 'option2' => 'value5' };