in reply to read multiple files

First, you are in what I call "glob Hell". Glob is not portable across even *nix platforms! There is POSIX glob, BSD glob, DOS glob, Windows glob.. Don't even mess with that!

Open the directory and use grep to find the files that you want:

opendir (D, "$somepath") || die "couldn't open dir $somepath"; my @txt_files = grep{/.txt$/} readdir D; #note that @txt_files only contains the file names, not #the full path...you will need "$somepath/$filename" in the open
Ok, now that @text_files has the p2q849-58764310-587.txt, etc. files in some directory. It is not clear to me what you intend to do with them?

From
file1.txt line1 file2.txt line4
I see no pattern or algorithm. Please explain more about what you want to do with these files.