in reply to File name filtering with ^ ?

I can understand your confusion. Filename wilcards, or glob constructs, use a simpler and DIFFERENT set of meta-characters from Regular Expressions (REs). In REs ^ means 'not' inside [...], but in globbing we use !, so you need [!TV].
You might also like to consider using the glob function instead of <>, particularly when using patterns from variables. <> are also used for reading files, and the code can get confusing. If you have filenamess with embedded spaces also look at module File::Glob. Update: corrected typos