in reply to array within an array

Perhaps a regular expression:

for ("@charges") { s/ch3 ((?:ch[^346] )*)ch4 ((?:ch[^346] )*)ch6/${1}${2}chx/g; say; }