Cool lil PERL característica he aprendido recientemente con cgi.pm

  • Borrow -A- Geek
  • Professor
  • Professor
  • Avatar de Usuario
  • Registrado: Dic 20, 2002
  • Mensajes: 775
  • Loc: Dallas/Ft Worth, Texas
  • Status: Offline

Nota Abril 17th, 2003, 5:53 am


en Perl 5.0 + viene con un módulo de CGI.pm.
He empezado a estudiar este módulo y es muy poderoso en las cosas que puede hacer por aquí es la punta del Iceberg, a continuación .. puesto enferman más a medida que aprendo.
Código: [ Select ]
use CGI::Carp qw( fatalsToBrowser );

puesto que la pequeña línea de código justo debajo de la Shebang un thats it

que poco la línea Teeny Weenie hace maravillas para solucionar problemas de secuencias de comandos .. Ahora no tiene que ejecutar la secuencia de comandos en el shell bash para encontrar los errores.

He aquí un ejemplo de un resultado de ella, más que el mensaje de error 500 de inútil.


http://www.ferrisdesign.net/cgi-bin/test/raffle.cgi

(a propósito hizo un error en la secuencia de comandos para conseguir que muestran en el ejemplo)
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Abril 17th, 2003, 5:53 am

  • Borrow -A- Geek
  • Professor
  • Professor
  • Avatar de Usuario
  • Registrado: Dic 20, 2002
  • Mensajes: 775
  • Loc: Dallas/Ft Worth, Texas
  • Status: Offline

Nota Abril 17th, 2003, 6:03 am

Aquí hay un script de ejemplo poco fría que demostraron los accesos directos y el poder de la cgi.pm...notar la diferencia, incluso en una mirada de perl recta...

Código: [ Select ]
 
#!/usr/bin/perl
# CGI script that creates a fill-out form
# and echoes back its values.

 use CGI qw/:standard/;
 print header,
    start_html('A Simple Example'),
    h1('A Simple Example'),
    start_form,
    "What's your name? ",textfield('name'),p,
    "What's the combination?", p,
    checkbox_group(-name=>'words',
            -values=>['eenie','meenie','minie','moe'],
            -defaults=>['eenie','minie']), p,
    "What's your favorite color? ",
    popup_menu(-name=>'color',
          -values=>['red','green','blue','chartreuse']),p,
    submit,
    end_form,
    hr;



  if (param()) {
    print "Your name is",em(param('name')),p,
       "The keywords are: ",em(join(", ",param('words'))),p,
       "Your favorite color is ",em(param('color')),
       hr;
  }
  1.  
  2. #!/usr/bin/perl
  3. # CGI script that creates a fill-out form
  4. # and echoes back its values.
  5.  use CGI qw/:standard/;
  6.  print header,
  7.     start_html('A Simple Example'),
  8.     h1('A Simple Example'),
  9.     start_form,
  10.     "What's your name? ",textfield('name'),p,
  11.     "What's the combination?", p,
  12.     checkbox_group(-name=>'words',
  13.             -values=>['eenie','meenie','minie','moe'],
  14.             -defaults=>['eenie','minie']), p,
  15.     "What's your favorite color? ",
  16.     popup_menu(-name=>'color',
  17.           -values=>['red','green','blue','chartreuse']),p,
  18.     submit,
  19.     end_form,
  20.     hr;
  21.   if (param()) {
  22.     print "Your name is",em(param('name')),p,
  23.        "The keywords are: ",em(join(", ",param('words'))),p,
  24.        "Your favorite color is ",em(param('color')),
  25.        hr;
  26.   }
  • Borrow -A- Geek
  • Professor
  • Professor
  • Avatar de Usuario
  • Registrado: Dic 20, 2002
  • Mensajes: 775
  • Loc: Dallas/Ft Worth, Texas
  • Status: Offline

Nota Abril 17th, 2003, 6:11 am

PROGRAMACIÓN DE ESTILO
Hay dos estilos de programación con CGI.pm, un estilo orientado a objetos y una función de estilo orientado. En el objeto de estilo orientado a crear uno o más objetos CGI y utilizar los métodos de los objetos para crear los distintos elementos de la página. Cada objeto CGI comienza con la lista de parámetros con nombre que se pasaron a su script CGI por el servidor. Puede modificar los objetos, guardar en un archivo o base de datos y volver a ellos. Debido a que cada objeto se corresponde con el estado `` de la secuencia de comandos CGI, y porque cada lista de parámetros de los objetos es independiente de los demás, esto le permite guardar el estado de la secuencia de comandos y recuperar más tarde.
Por ejemplo, usando el estilo orientado a objetos, he aquí cómo crear un simple `` Hello World página HTML:


Código: [ Select ]
  #!/usr/local/bin/perl -w
  use CGI;               # load CGI routines
  $q = new CGI;            # create new CGI object
  print $q->header,          # create the HTTP header
     $q->start_html('hello world'), # start the HTML
     $q->h1('hello world'),     # level 1 header
     $q->end_html;         # end the HTML
  1.   #!/usr/local/bin/perl -w
  2.   use CGI;               # load CGI routines
  3.   $q = new CGI;            # create new CGI object
  4.   print $q->header,          # create the HTTP header
  5.      $q->start_html('hello world'), # start the HTML
  6.      $q->h1('hello world'),     # level 1 header
  7.      $q->end_html;         # end the HTML



En la función de estilo orientado, hay un defecto CGI objeto que rara vez se trata directamente. En lugar que acaba de llamar a funciones para recuperar los parámetros CGI, crear etiquetas de HTML, gestión de las cookies, etc. Esto le proporciona una interfaz más limpia de programación, pero te limita a usar un objeto CGI a la vez. El siguiente ejemplo imprime la misma página, pero utiliza la función de interfaz orientada. Las principales diferencias son que ahora tenemos que importar un conjunto de funciones en nuestro espacio de nombre (generalmente el `` funciones estándar), y no necesitamos para crear el objeto CGI.

Código: [ Select ]
  #!/usr/local/bin/perl
  use CGI qw/:standard/;      # load standard CGI routines
  print header,          # create the HTTP header
     start_html('hello world'), # start the HTML
     h1('hello world'),     # level 1 header
     end_html;         # end the HTML
  1.   #!/usr/local/bin/perl
  2.   use CGI qw/:standard/;      # load standard CGI routines
  3.   print header,          # create the HTTP header
  4.      start_html('hello world'), # start the HTML
  5.      h1('hello world'),     # level 1 header
  6.      end_html;         # end the HTML
  • dreamer7
  • Student
  • Student
  • No Avatar
  • Registrado: Ene 20, 2003
  • Mensajes: 96
  • Loc: UK
  • Status: Offline

Nota Abril 18th, 2003, 6:43 am

yup que es v útil, pero lo que no han descubierto aún lo que es la -> significa realmente en referencia a escalares cud ya darme una definición please

Publicar Información

  • Total de mensajes en este tema: 4 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 163 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC