In diesem konkreten Fall sieht der String fast wie gültiges Perl aus:
Ein anonymes Hash, dessen Value(s?) ein Array-Ref mit lauter Hashes ist.
Man muss nur
: durch
=> oder
, ersetzen und kann dann den String mit
eval in die Perl-Datenstruktur bringen, z.B. so
my $string = ...;
$string =~ s/:/=>/g;
my $datastruct = eval $string;
Das setzt freilich voraus, dass der String wirklich immer solch eine Struktur hat und aus einer vertrauenswürdigen Quelle stammt. Je nach Inhalt des evaluierten Strings kann das
eval $string fatal sein.