Problem:
I have various files named *.language which contain hashes like: $LANGUAGE{content_index_misc_this} = qq~blah~; I need to convert any such items to $LANGUAGE{CONTENT_INDEX}{MISC}{THIS} = qq~blah~; The CONTENT_INDEX part is parsed from the filename, eg content_index.language. The rest needs to be converted to upper case and '_' switched for '}{'. The files are not structured, the hashes could be anywhere with none or many on each line.
I have been given this code (thanks), however, it presumes there is only two hashes to create after the content_index (misc, this) and there could be several. Also, the content_index part will change depending on the file being parsed.
#!c:\perl\bin\perl.exe $c="\$LANGUAGE{content_index_misc_this} = qq~blah~;"; $c =~ s/(\{)(.+)(\})/$1\ U$2\E$3/g; $c =~ s/_/\}\{/g; $c =~ s/(content)\}\{( index)/$1_$2/i; print $c, "\n";'
In reply to Perl Parsing Pedantics by snoopyac
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |