Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: oihantze en 22 Agosto 2009, 11:22 AM

Título: PROBLEMAS CON EL system en PERL
Publicado por: oihantze en 22 Agosto 2009, 11:22 AM
Hola,

he hecho un programa en perl desde el que voy a llamar a distintos programas.
para llamar a los programas lo que primero tengo que hacer es un cambio de directorio (cd) a donde se encuentran los programas.

el problemas esta en que pongo eta linea en el programa:

system("cd /home/oihana/workspace/HTMLDefinitivoa");

y me da este error:

Can't exec "cd": No existe el fichero ó directorio at ./ejecutando_estoy.pl line 64.


alguien sabe que es lo que pasa????????

gracias
Título: Re: PROBLEMAS CON EL system en PERL
Publicado por: Anibal784 en 22 Agosto 2009, 14:46 PM
mmmmm...  debe tener una función chdir, el cd de la llamada a system no funciona.
Código (perl) [Seleccionar]

chdir("/home/oihana/workspace/HTMLDefinitivoa");
`./ejecutable`;

Título: Re: PROBLEMAS CON EL system en PERL
Publicado por: ^Tifa^ en 22 Agosto 2009, 16:49 PM
Que version de perl es esa? puesto que yo tengo la 5.10 y anteriormente la 5.8 y nunca tuve problemas con system y cd... pero, cada aplicacion en cada sistema es un mundo, ya vez.

Puesto que cd es un builtin de bash, si con chdir no te va podrias intentar ejecutar la cuestion asi:

`cd directorio`

Es un decir  :P
Título: Re: PROBLEMAS CON EL system en PERL
Publicado por: leogtz en 22 Agosto 2009, 20:06 PM
Efectivamente, perl posee un "chdir.
Código (perl) [Seleccionar]

chdir('/etc') or die("No se pudo cambiar de ruta.\n");


Y si estás en Windows:
Código (perl) [Seleccionar]

chdir('c:\Documents and settings\demas\ruta') or die("No se puro cambiar de ruta.\n");
Título: Re: PROBLEMAS CON EL system en PERL
Publicado por: oihantze en 24 Agosto 2009, 14:59 PM
muchas gracias, con el chdir me funciona perfectamente!
Título: Re: PROBLEMAS CON EL system en PERL
Publicado por: leogtz en 24 Agosto 2009, 17:57 PM
Por último, las cuestiones sobre Perl, van en la sección de Scripting.