Pretty Clever! Never played much with DATA. Unfortunately, it won't work as I want this as a module. I think trying to do that on the fly will cause many problems. (Evals, etc)
I actually just finished a version using Filter::Simple (Changes the calls if the line doesn't contain a for/foreach/while that works but I'd like to avoid requiring it if I can.