• Publicidad

¿Ruta correcta?

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

¿Ruta correcta?

Notapor Rene Serrano » 2007-07-10 10:51 @494

Buenas a todos. Tengo una duda muy simple pero yo no veo dónde puede estar el error.

Quiero abrir un archivo que está en el servidor físicamente. Esta es su ruta: C:\PROGRA~1\APACHE~1\Apache2.2\htdocs\reportes.

Pero cuando lo quiero abrir desde un cgi me sale el siguiente error: Error: no pude abrir a /PROGRA~1/APACHE~1/Apache2.2/htdocs/reportes/table.html: No such file or directory

Aquí les dejo el código en cuestión
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/perl/bin/perl.exe
$|=1;
use Win32::ODBC;
use CGI;
use CGI::Carp qw(fatalsToBrowser set_message);

my $cgiparms    = new CGI;
my $codigo              = $cgiparms->param("codigo");

my $dir= "/progra~1/apache~1/Apache2.2/htdocs/reportes";
 
 $file_html ="table.html";
 $file_tr ="table.tr";
 
print "Content-type: text/html\n\n";

open (DATA, "$dir.$file_html")or print "Error: no pude abrir a $dir/$file_html: $!\n";
        while ($line = <DATA>)
        {
#               $line =~ s/##table/$options/g;
#               $line =~ s/##table/$algo/g;
                print $line;

}
die;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


A ver si me echan una mano.
------------
¦23n3
Rene Serrano
Perlero nuevo
Perlero nuevo
 
Mensajes: 86
Registrado: 2006-11-27 12:35 @565
Ubicación: El salvador CA

Publicidad

Notapor explorer » 2007-07-10 12:38 @568

¿Y el C:? ¿Dónde está en $dir? ¿No falta?

Además, falta un '/' cuando unes $dir con $file_html, en el open.

Debería ser:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
open (DATA, "<$dir/$file_html")
    or die "ERROR: No pude abrir $dir/$file_html: $!\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Actualización: Seguramente no sea necesario usar el C: si el servidor web corre en la misma letra de unidad, por lo que entonces el sistema tomará el primer '/' como raíz de la unidad donde se está ejecutando el programa.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14482
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Rene Serrano » 2007-07-10 12:57 @581

Era la "/" que me faltaba, pero bien raro porque en otro programa no lo ponía y funcionaba. Muchas gracias de todas maneras.
------------
¦23n3
Rene Serrano
Perlero nuevo
Perlero nuevo
 
Mensajes: 86
Registrado: 2006-11-27 12:35 @565
Ubicación: El salvador CA

Notapor explorer » 2007-07-10 17:32 @772

Yo también cometía ese tipo de errores, hasta que me harté y empecé a escribirlo así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $fichero = "$directorio/$fichero_html";

open DATA, "<$fichero" or die "ERROR: No puedo abrir el $fichero: $!\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
es decir, usaba la misma variable para abrir (open) que para informar en caso de error (die), por lo que así estaba seguro de estar viendo lo mismo que estaba intentando abrir.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14482
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados