When you're choosing a file to open in vi(m), you can limit your search to a mask:
:e *.pl[tab]
At this point you're only tab'ing through the .pl files.