in reply to Only printing last hash (repost)

If you have input as: param('specifics') is "[a][b]" and you have $data{Foo} = "Bar::Baz::..." and $data{Boo} = "Far::Faz::...", what do you want your output to be?

As is, it will be "FarFaz" twice, because Boo is processed first and $specifics doesn't have bracketed things left to substitute after that. If you want something different, it would be helpful to know what you would expect in this case.