• Publicidad

Duda sobre arrays... muy básico..

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

Duda sobre arrays... muy básico..

Notapor hinoeath » 2006-11-10 12:22 @557

:( hola soy nuevo... aprendiendo Perl... apenas tengo 2 días... ya tengo mi Perl localmente y estoy probando mis scripts... etc... ¿Alguien puede recomendarme un libro?

Y ahora sí la pregunta... ¿cómo puedo imprimir en el navegador el contenido total o un elemento de una array...? porque lo he intentado así... pero no funciona...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!C:\perl\bin\perl.exe -w # :por que aquí se pone un "-w"? eso que indica?

my @array(1,2,3,4,5,9,8,5);

$posicion4=$array[4];

print "Content-type: text/html\n\n"; # aquí siempre tengo que poner el tipo de contenido antes de imprimir algo?

print ($posicion4);

exit(1);
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
¿La función exit(); siempre es necesaria al finalizar nuestro script?
¿Siempre antes de imprimir cualquier dato en Perl tengo que definir el tipo de contenido "Content-type:"?

¿Bueh, que estoy haciendo mal? El navegador queda en blanco y no sale nada =( De antemano gracias y salu2 :wink:
hinoeath
Perlero nuevo
Perlero nuevo
 
Mensajes: 10
Registrado: 2006-11-09 17:32 @772
Ubicación: Barranquilla-Colombia

Publicidad

Notapor explorer » 2006-11-10 13:14 @593

Bienvenido a Perl.
Bienvenido a los foros de Perl en Español.

Un libro sería cualquiera de la serie "Learning Perl", aunque están en Inglés. En este foro hay algunos tutoriales para algunas tareas. En Internet hay algún que otro manual y tutorial en castellano.

Para imprimir un array en el navegador tienes primero que decidir qué tipo de formato vas a usar para imprimirlo: como un texto o como una página web. Según lo que elijas deberás poner un "Content-type" diferente. Luego, la forma de presentar el array es muy parecida.

Sobre tu ejemplo. La opción '-w' al comienzo sirve para que active el sistema de "avisos" de Perl, para avisarte por si perl encuentra algo que podría ser un error.

De hecho, al ejecutar tu programa sale:
Código: Seleccionar todo
syntax error at ./kk.pl line 3, near "@array("
Execution of ./kk.pl aborted due to compilation errors.
lo que quiere decir que no entiende lo de "@array(". Más bien será "@array=(" (falta un '=').

Luego, después de corregir ese error, no sale ningún aviso más. Lo ejecutamos y sale esto:
Código: Seleccionar todo
Content-type: text/html

5
pero aquí hay un problema: le estás diciendo al navegador que lo que le vas a enviar es una página de texto con marcas html, pero en realidad lo que le mandas es un humilde '5'.

Tienes dos opciones, como te comenté antes:
a) Enviarlo como texto. Para ello, cambia el Content-type a 'text/plain'.
b) Enviarlo como html. Para ello, en el print debes poner:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
print "<html><body>$posicion4</body></html>";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


La función exit() normalmente no es necesaria. Se suele usar para indicar algún mensaje al programa que ha llamado al nuestro, para indicar si todo ha ido bien o ha ocurrido un fallo.

Lo de siempre imprimir el Content-type es sólo para el caso de hablar con un navegador web. Pero hay muchos programas Perl que imprimen en pantalla, consola, impresora, puerto serie, conexión socket, etc. etc., por lo que no necesitan ponerlo.
Última edición por explorer el 2007-11-10 07:19 @347, editado 1 vez en total
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

=)

Notapor hinoeath » 2006-11-10 13:52 @620

:D eso sí que es una explicación... Muchísimas gracias, explorer... Ya me he puesto a leer. Que bueno tu respuesta; aclaré muchas que en ningún artículo he encontrado hasta ahora... salu2
hinoeath
Perlero nuevo
Perlero nuevo
 
Mensajes: 10
Registrado: 2006-11-09 17:32 @772
Ubicación: Barranquilla-Colombia

Notapor hinoeath » 2006-11-10 14:56 @664

8) Hola explorer se que no viene al caso pero realmente me gustaría conocer la opinión de alguien con experiencia como la tuya, antes de empezar por elegir un "lenguajes de scripts" para trabajar sobre la plataforma web estuve un poco indeciso entre Perl y Python.

Navegando y leyendo, primero me decidí por Python pero ya ves terminé con Perl. Sin embargo hay algo dando vueltas en mi cabeza y sólo pediré aclaración en el campo que me interesa que es en el de "desarrollo de aplicaciones web"... ¿En este campo que se "comporta" mejor, scripts escritos en Python o Perl?... Hay muchos que critican que Perl es un caos, sin embargo no me ha parecido eso y todo depende de quien lo use por eso toca estudiar lo suficiente xD. De todas formas quisiera conocer tu opinión acerca de Perl e ideas como de que "Perl es un lenguaje que esta muriendo y es obsoleto". De antemano gracias y saludos.
hinoeath
Perlero nuevo
Perlero nuevo
 
Mensajes: 10
Registrado: 2006-11-09 17:32 @772
Ubicación: Barranquilla-Colombia

Notapor explorer » 2006-11-10 16:20 @722

Para mi lo importante es:

* Libertad. Poder elegir la forma de resolver un problema. Puede que mi solución sea muy complicada, pero no invalida la de un novato. Si las dos resuelven el problema, mejor. Esto va en contra de algunos lenguajes que te 'obligan' a pensar de una sola forma.

* Lenguaje natural. Aunque está basado en inglés, escribir scripts que remeden el lenguaje natural, puede ayudar bastante a su compresión.

* CPAN. Más de 10.000 librerías disponibles de más de 5.000 autores significa un montón de horas de trabajo que no tienes que realizar. Otros lenguajes no tienen esto, por lo que estarás obligado a realizar desde cero muchas tareas. Y cada vez hay más... la progresión es geométrica (ver abajo).

En cuanto al comportamiento en web, no conozco como será Python, pero en Perl yo no he visto problemas. Es más, si se necesita más eficiencia se puede usar mod_perl con lo que hay mejoras de entre 400% a 2000% en velocidad, básicamente porque te ahorras la fase de interpretación que hace perl.

Y lo de que está muriendo y es obsoleto... en CPAN siguen saliendo librerías que abarcan las últimas tecnologías, como Ajax, Wiki o CMS. Un lenguaje se podría decir que está muriendo si no responde a unas necesidades. Perl ahora mismo sigue estando en el sexto puesto de la clasificación TIOBE. Y puestos de trabajo salen constantemente.

El problema está en que Perl no tiene una gran empresa que lo apoye, como Microsoft con su C# o Sun con su Java. En Perl, se depende de su comunidad.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
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: Bing [Bot] y 0 invitados