Same idea but taking advantage of the wantarray response of a match and commenting the regex
~/$ perl -e '
$string="sometrash key1=value0 value1, value2 key2=value3 key3=value4"
+;
%hash = $string =~/
(\w+) #capture the key name
= # separated from the value by an equals
(.+?) # and then the value, non-greediness prevents running
+ into the subsequent values
(?=(?:\s\w+=|$)) # finally we look ahead to ensure that what follows i
+s a space and a "key=" pattern, or else the end end of the string
/xg; #Match globally and allow comments in the regex for m
+aintainability
# And check
use Data::Dumper;print Dumper(\%hash);
'
$VAR1 = {
'key2' => 'value3',
'key1' => 'value0 value1, value2',
'key3' => 'value4'
};
print "Good ",qw(night morning afternoon evening)[(localtime)[2]/6]," fellow monks."