in reply to matching regex on an array element w/o looping the array

If you're going to be doing something with each element the following 'for' idiom is useful:
for (grep /.*P.*\.0912\.ama\.gz/, @sourcefiles) { # $_ contains each matching name }
As sauoq pointed out, though, this does iterate over the list. It's hard to search through a list without iterating :) But grep is your friend. Learn it, love it.
---
"I hate it when I think myself into a corner."
Matt Mitchell