http://qs1969.pair.com?node_id=1191241


in reply to Subroutine processes only one file in the directory

I see one mistake. Change:
my $filename = @_;

to:

my $filename = $_[0];

Your code always assigns $filename=1, instead of the actual file name. Prove this to yourself by printing $filename inside your sub right after the assignment.

See also: Basic debugging checklist