$ perl -e ' use strict; use warnings; my @files = glob("*.msg"); for my $file (@files) { my $cmd = "ls -l $file"; system($cmd); } ' -rw-r--r-- 1 ken staff 10 26 Oct 03:01 a.msg -rw-r--r-- 1 ken staff 10 26 Oct 03:01 b.msg -rw-r--r-- 1 ken staff 10 26 Oct 03:02 c.msg #### $ cat script.pl while (<>) { print "$_\n"; } #### $ perl -e ' use strict; use warnings; my @files = glob("*.msg"); for my $file (@files) { my $cmd = "perl script.pl < $file"; system($cmd); } ' Message A Message B Message C #### $ perl script.pl *.msg Message A Message B Message C