Como procesar argumentos desde la línea de comandos en Perl al estilo Unix Ejemplo 2)
-->
En Perl se puede codificar de distintas maneras la solución de un problema.
A continuación un segundo ejemplo de procesamiento de argumentos recibidos desde la línea de comandos, sin utilizar un módulo de manejo de argumentos.
En este ejemplo, se pueden recibir las siguientes opciones:
- -d algo: llama al proceso 1.
- -a algo: llama al proceso 2.
- -h : llama a ayuda.
El formato de llamado del script puede ser.
[usuario@maquina]$ miPrograma.pl [usuario@maquina]$ miPrograma.pl -a algo [usuario@maquina]$ miPrograma.pl -d algo
#!/usr/bin/perl
use strict;
##################################################
#indice para verificar el valor del argumento
my $j=0;
my $directorio;
my $archivo;
##################################################
#Procesamiento de parametros de linea de comando
if ($#ARGV==-1) {
print "Sin argumentos\n";
ayuda();
} else {
print("##########################\n");
print("Cantidad argumentos-> $#ARGV\n");
print("##########################\n");
if($#ARGV!=1){
#se espera la opcion ej -a o -d seguida de una cadena
print "\n No se ha pasado la cantidad correcta de argumentos \n";
exit;
}
for (my $i=0;$i <= $#ARGV; $i++){
if($ARGV[$i] eq "-h"){
ayuda();
}
if($ARGV[$i] eq "-d"){
$j=$i+1;
if($j<=$#ARGV){
$directorio=$ARGV[$j];
print "Directorio-> $directorio\n";
proceso1;
exit;
}else {
ayuda();
}
}else{
if($ARGV[$i] eq "-a"){
$j=$i+1;
if($j<=$#ARGV){
$archivo=$ARGV[$j];
print "Archivo-> $archivo\n";
proceso2;
exit;
}else {
ayuda();
}
}else{
ayuda();
exit;
}
}
}#for ($i=0;$i <= $#ARGV; $i++)
}#if ($#ARGV==-1) {
##################################################
sub proceso1{
print "Proceso 1\n";
}
sub proceso2{
print "Proceso 1\n";
}
sub ayuda{
print "\n TEXTO DE AYUDA \n";
}
-------------------------------------------- CORTAR AQUI -------------------------------------------------------


Comentarios
Publicar un comentario