Empezando por el final.
Para hacer un
open/close variable, necesitas hacerlo con una variable:
Using perl Syntax Highlighting
foreach my $fichero ( 'fichero1.txt', 'fichero2.txt' ) {
open(FILE,">$fichero") or die "ERROR: No pude abrir en escritura el fichero $fichero: $!\n";
# ...
close FILE;
}
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Para el tema de generar 500
scripts. Yo supongo que cada uno de ellos los llamarás de una forma distinta, para que cada uno se conecte a una base de datos distinta o realice diferentes funciones.
Aunque podríamos generar esos 500
scripts, el mantenimiento de ellos puede ser enorme, si al final difieren unos de otros en muy poco. Como sabemos que a los programas se les pueden pasar argumentos, podríamos tener un único
script que se comportase de forma distinta según los argumentos que se le pasen.
Pero hay alguna ocasión en la que no podemos hacer eso (por limitaciones del sistema operativo o comunicaciones entre procesos, etc., entonces estamos obligados a ejecutar directamente un
script.
Una forma de tener todo el problema resumido en un único
script y que se comporte de forma distinta según el nombre como es llamado, es hacer lo siguiente:
Supongamos que nuestro
script se llama
script.pl. Necesitamos que se llame
abrir_base_datos_aa1.pl,
cerrar_base_datos_aa1.pl y
cierra_todo.pl.
Bueno, pues según nuestro sistema operativo, tendremos que crear tres copias de nuestro
script y llamarles de esa forma o, como en el caso de UNIX/Linux, podríamos crear enlaces simbólicos al script.pl, pero de distinto nombre:
Using bash Syntax Highlighting
explorer@next3:~/> ln -s script.pl abrir_base_datos_aa1.pl
explorer@next3:~/> ln -s script.pl cerrarr_base_datos_aa1.pl
explorer@next3:~/> ln -s script.pl cierra_todo.pl
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
entonces tenemos tres enlaces simbólicos al mismo
script.
Dentro del
script, al empezar, sólo tenemos que consultar la variable
$0 para saber el nombre del
script que ha ejecutado el usuario. Según sea un nombre u otro haremos una cosa u otra.