in reply to SQL::Abstract with non SQL source data

Your question is very vague. You show no code, and yet hope that we can propose how to change your code to make it work.

Also you don't tell us what SQL you want to generate from FO%|B%|CAT, and why you are having problems with doing that when more than one placeholder is present.

At the current state of knowledge I'd just say "use a loop around the code that handles placeholders".