1. Utilice un parámetro para leer varios parámetros pasados por el shell: Directorio: el contenido de a.logb.logc.logdota.pldota.pl es el siguiente: #! : :Std;use advertencias;use estricto;sub read_from_sh($) {my $file = shift;my @files = ();abra F, $file o muera "No se pudo abrir $file: $!"; while (< F ) {siguiente si /^\s*$/;push @files, $_;}cerrar F o morir "No se pudo cerrar $file: $!";return @files;}my @files;my %opts = ( ) ;getopts("s:", \%opts);if ($opts{'s'}) {@files = read_from_sh($opts{'s'});}else {@files = @ARGV;}para my $file (@files) {print "file: $file\n";} El shell en ejecución es el siguiente: find -name '*log' /usr/bin/perl dota.pl -s -El resultado es el siguiente siguiente: archivo:a.logfile:b.logfile:c.log o páselo directamente a perl:/usr/bin/perl dota.pl a.log b.log El resultado es el mismo que el anterior 2. Pase múltiples parámetros a el programa perl: #!/usr/bin/perl -wuse estricto;use Getopt::Std;use vars qw($opt_a $opt_b $opt_c);getopts('a:b:c:');print "\$ opt_a =; $opt_a\n" si $opt_a; imprimir "\$opt_b =; $opt_b\n" si $opt_b;