<> percorre o array @ARGV, então você pode mexer com @ARGV da maneira que quiser antes de processar arquivos com <>.
Por exemplo, este script elimina qualquer opção de invocação começando por ‘-‘ antes de processar os arquivos de entrada:
use List::Util qw(first);
foreach $arg (@ARGV) {
$_ = $arg;
if (/^-/)
{
print "$arg is an invocation optionn";
#Eliminate invocation options from @ARGV before we run the <> operator
splice @ARGV, first { @ARGV[$_] eq $arg } 0..$#ARGV, -1;
}
}
while (<>) {
chomp;
print "It was $_ that I sawn";
}