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