my $data=do {local $/;}; $data=~s/\(\s*(\w+)(\W)/$1\($2/gs; # s-expr -> m-expr functions $data=~s/\)(?=[\s\w]+)/),/g; # comma after functions $data=~s/\s([\w"\\]+)(?=[\s)])/$1,/g; # comma separated args print $data;