[Programación] Re: [Programación] Argumentos para ge nerar "todos en uno" en perl...

Nicolás Aimetti programacion@lugro.org.ar
Tue, 20 Dec 2005 16:16:04 +0000


hola...

> Holas...
> 	En C uno puede generar el concepto "todo en uno" simplemente analizando
> el campo $0 en bash o argv[0] en C, es decir a modo de ejemplo (como es
> el caso de mv, cp, rm, etc...)
> 
> #include<stdio.h>
> #include<stdlib.h>
> #include <string.h>
> .......
> int main(int c,char* argv[])
> {
> ...............
> 	if(!strcmp(argv[0],"mv")){
>          ...............
> 	}
> 	if(!strcmp(argv[0],"cp")){
> 	....................
> 	}
> 	if(!strcmp(argv[0],"rm")){
> 	..................
> 	}
> .........................
> }
> 
> luego si lo compilo como "cc caca.c -o caca" entonces ahora uso un
> hard-link...
> 
> ln caca mv
> ln caca cp
> ln caca rm
> 
> entonces tengo varios comandos en un solo código...
> 
> Se entiende lo que busco...? esto como se lo puede hacer en perl..?
> (sin apelar al bash... claro...)
> 
> Saludos Horacio.
> 
> 

$0 Contains the name of the program being executed.

Igualito al bash...

Así que:

if ( $0 =~ /foo\.pl$/ ) {
         print "Soy foo.pl!!!\n";
}else{
         print "soy cualquier otra cosa\n";
};


En perl también existe la variable  @ARGV que contiene los parametros
pasados al script, numerados de 0 a n... pero en la posición 0 guarda el 
primer parametro, no el nombre del script como haría C.

Saludos,
         Nicolás.