If all text files are on the same depth, then either you can depend on the shell globbing (except on Windows) to get all files into the @ARGV array, or use perl's own
glob. (Unlike on Linux, Windows doesn't expand *.txt on the command line to a list of all files ending in ".txt". Yo uhave to take care of that yourself.)
Using glob can be done, for example, like this:
chdir $dir;
@ARGV = glob "*.txt";
and now you can just use
while(<>){...}. On each line,
$ARGV contains the current file name, and
eof can be used to detect when the current file is finished, and the next file will start to be used.
Or you can just loop through the file list yourself and open each file in turn.