in reply to Not looping... Am I a moron?

Perhaps your problem is because there is no "while" statement on your "do" block ... you may want this kind of structure, roughly:
for (@_) { do { # stuff to do here } while (/\.dat/); }
...Or, if you aren't trying for a do/while loop, just testing for ".dat" in the string, maybe you want:
for (@_) { if (/\.dat/) { # stuff to do here } }
You may also want to replace /\.dat/ with /(\.dat)$/ to make sure that's the file extension, so "test.dat.old" wouldn't be a match.

Update: I thumbed through the Camel and discovered there is a "do BLOCK" form I wasn't aware of, so my answer may be way off from what you're looking for.

Hot Pastrami