use strict;
my $str = '{
type:"book",
author:["Willighagen, LG"],
editor:["Toos van Hoof","Karin Antoinette Henriette Majoor"],
date:
{
from:{
from:[1,2,2003],
}
}
,
print:3,
}';
my $regex = qr/(("|]|}|\.|(\d|\.|-|:)\s*\d)\s*,|{)\s*(")?([^":\n]+?)(")?\s*:/p;
my $subst = '$1"$5":';
my $result = $str =~ s/$regex/$subst/rg;
print "The result of the substitution is' $result\n";
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html