Perl - Problema con windows update y entorno de ejecucion

 
Vista:

Problema con windows update y entorno de ejecucion

Publicado por mundoweb (1 intervención) el 17/06/2004 12:06:20
Hola,

Hace uno o dos meses que actualice windows XP con windows update y desde entonces han dejado de funcionar unas utilidades que tengo hechas en Perl y ejecutadas en entorno de MS-DOS.

El problema es este:

Tengo cientos de ficheros bat en diversas carpetas que llaman a un mismo programa en perl, de la forma:

xxx.bat CONTIENE:
perl c:\\herramientas\\herramienta.pl fichero.txt

El programa Perl CONTIENE:
push @INC, \"C:/librerias\";

El problema es que desde que actualicé el sistema con windows update, no hay forma de que el programa en perl encuentre las librerias. Lo he probado de mil maneras, colocandolas en la misma carpeta que
el programa, colocando la referencia de diversas formas y nada.

He probado:
push @INC, \"C:/codigo/cgi-bin/lib\";
push @INC, \"C:\\codigo\\cgi-bin\\lib\";
push @INC, \"C:\\\\codigo\\\\cgi-bin\\\\lib\";
push @INC, \".\";
y nada

Siempre obtengo el mismo error:

Can\'t locate Net/FTP.pm in @INC (@INC contains: C:/Perl/lib C:/Perl/site/lib .)

Es decir, está ignorando las sentencias push @INC

Sin embargo, hago:

for my $inc(@INC) {
print $inc . \"\\n\";
}

y entonces si que aparecen las referencias a las librerias:

C:/Perl/lib
C:/Perl/site/lib
.
C:/codigo/cgi-bin/lib
C:?digoi-binib
C:\\codigo\\cgi-bin\\lib
.

La unica forma de que funcione es que el programa bat que llama al perl este en la misma carpeta que el perl, pero claro, esto no me sirve pues tengo cientos de programas bat y tendria que copiar las
librerias cientos de veces en cuentos de sitios.

Por alguna razon, ahora, la carpeta donde esta el bat llamador se convierte en carpeta por defecto, y perl busca todas las referencias en esa carpeta, ignorando las sentencias push @INC.

Lo raro es que no ha hecho ningun cambio en el programa perl, en la estructura de carpetas ni en el interprete de perl, simplemente actualicé con windows update e inmediatamente dejó de funcionar.

Muchas gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder