• Inicio
  • Buscar
  • Ingresar
  • Registrarse

    Starfield: el juego que revolucionará el espacio y la tecnología

    • Hack x Crack - Comunidad de Seguridad informática »
    • Programación »
    • Scripting »
    • Perl »
    • Estructuras de control y Funciones.
    • Imprimir
    Páginas: [1]   Ir Abajo

    Autor Tema: Estructuras de control y Funciones.  (Leído 2678 veces)

    Desconectado #RemoteExecution

    • { L2 } Nativo Digital
    • **
    • Mensajes: 117
      • Ver Perfil
    Estructuras de control y Funciones.
    « en: Septiembre 07, 2011, 05:07:39 pm »
    Estructuras de control de flujo

    Perl mantiene todas las estructuras de control de flujo que pueda tener cualquier otro lenguaje, pero con la peculiaridad de que un bloque siempre debe ir entre llaves ({   }), aun cuando el bloque contenga un única sentencia.

    Un resumen general de las estructuras de control de flujo es:
    Código: [Seleccionar]
        * if (EXPR) BLOQUE
        * if (EXPR) BLOQUE else BLOQUE
        * if (EXPR) BLOQUE elsif (EXPR) BLOQUE else BLOQUE
        * SENTENCIA if (EXPR);
        * unless (EXPR) BLOQUE
        * unless (EXPR) BLOQUE else BLOQUE
        * unless (EXPR) BLOQUE elsif (EXPR) BLOQUE else BLOQUE
        * SENTENCIA unless (EXPR);
        * while (EXPR) BLOQUE
        * SENTENCIA while (EXPR);
        * until (EXPR) BLOQUE
        * SENTENCIA until (EXPR);
        * do BLOQUE while (EXPR);
        * do BLOQUE until (EXPR);
        * for (EXPR;EXPR;EXPR) BLOQUE
        * foreach $var (Array) BLOQUE

    Donde EXPR es una expresión, BLOQUE es una sentecia o conjunto de estas encerrado entre llaves y SENTENCIA es una sola sentencia
    ejemplo:
    Código: [Seleccionar]
    #!/usr/bin/perl

    for ($i=0; $i < 20; $i++) #Con el bucle for, asignamos 20 valores a la array de nombre matriz.
      {
        $matriz[$i]="Elemento $i"; # A medida que $i incrementa su  valor se le asigna el mismo a esa misma posicion en el array.
      }

    print "El último es $matriz[$#matriz]\n" if ($#matriz==19);# Contamos cuantos elementos tiene la matriz y si es = 19 imprimimos
    print "El último: $matriz[$#matriz]\n" unless ($#matriz!=19);#unless (hacer a menos que...). Se usa cuando queremos que se ejecute una instrucción o grupo de instruciones en el caso de que una variable no esté definida o que la condición no sea verdad, es decir, equivaldría a Si no existe... o  Si no es...

    $i=0; #inicio la variable $i en 0
    while ($matriz[$i] ne "Elemento 5") #la condicion es que sea distinto de Elemento 5
      {
          print "Buscando \"Elemento 5\" y encontrado $matriz[$i]\n"; # imprimo que elemento busco y cual es el elemento encontrado
          $i++; #incremento $i en 1
      }
    if ($i==5)
      {
          print 'La variable $i es 5'."\n";
      }
      else
      {
          print 'La variable $i no es 5'."\n";
      }
    #Vamos a mostrar los elementos del array
    foreach $elemento (@matriz)#foreach...(para cada...): Esta instrucción se usa para recorrer los valores de las matrices. La expresión dentro del paréntesis (matriz) es evaluada para producir una lista con sus valores, que actúan como contadores del bucle, ejecutandose el bucle una vez por cada uno de estos elementos.
      {
        print "$elemento\n";
      }
    #Creamos una tabla hash
    %dias=("lunes",L,"martes",M,"miercoles",X,"jueves",J,"viernes",V,"sabado",S,"domingo",D);

    #Y mostramos sus claves
    foreach $clave (keys(%dias))
      {
        print "\%dias{".$clave."}=".$dias{$clave}."\n";
      }

    Funciones

    Podemos definir funciones o tambien llamadas subrutinas, mediante la sintaxis: sub Nombre del Bloque.  Los parámetros de una función están en el aray @_ y con return como en casi todos los lenguajes de programación devolvemos el contenido.

    Código: [Seleccionar]
    #!/usr/bin/perl
     
    $uno=1;
    $dos=2;

    #Llamamos a la función suma
    $sum=suma($uno,$dos);

    print "La suma de $uno + $dos es $sum\n";

    #Función suma
    sub suma
      {
        #tomamos los parámetros
        my ($primero,$segundo)=@_; #También se podría hacer con my $primero=shift(@_); my $segundo shift(@_)];

        #Devolvemos el resultado
        return ($primero+$segundo);
      }
    En línea

    Desconectado L00PeR

    • { L2 } Nativo Digital
    • **
    • Mensajes: 138
      • Ver Perfil
    Re:Estructuras de control y Funciones.
    « Respuesta #1 en: Septiembre 07, 2011, 06:33:42 pm »
    A mi personalmente me gusta... No soy especialmente forofo de este lenguaje pero reconozco que resulta muy útil por la cantidad de cosas que están hechas en él.

    Y coincido con LeoN en que podrías modificar el titulo (si se puede) para añadirle algo como:
    (Tutorial Perl III) Estructuras de control y funciones
    (Tutorial Perl II) Clases de datos y operadores en Perl
    (Tutorial I) Entradas y salidas en Perl

    Y en cada post hacer un enlace al anterior, Así si leo el post actual siempre tengo al principio un enlace al anterior y este a su vez al anterior... hasta dar con el inicio de la "saga Perl de hielasangre" :-) :-P

    Así, poco a poco con cada post que hagas hasta haces un tutorial que podría transformarse en un  Cuaderno HxC y todo...

    Esta claro que es darte un trabajillo extra... pero resultaría más fácil -creo- si alguien busca en el foro algo sobre Perl básico.
    En línea

    Desconectado Neutron

    • { L6 } Flooder del foro
    • ******
    • Mensajes: 833
    • Sea humilde.
      • Ver Perfil
      • Say what again?
    Re:Estructuras de control y Funciones.
    « Respuesta #2 en: Septiembre 09, 2011, 12:58:19 am »
    Amigo, honestamente te agradezco estos tutoriales de Perl que haz posteado, ya que  los necesitare en unos dias. Estos tutos hacian falta en este sección. Pero te estaría mucho mas agradecido si hicieras como dices L00PeR ya que es mas cómodo de seguir, muchos otros también te lo agradecerían, espero que no sea molestia amigo  ;D

    Saludos!!!
    En línea
    Solo la verdad puede hacerte libre, pero esa verdad se llama Jesus. Vease Juan 11:25.

    • Imprimir
    Páginas: [1]   Ir Arriba
    • Hack x Crack - Comunidad de Seguridad informática »
    • Programación »
    • Scripting »
    • Perl »
    • Estructuras de control y Funciones.
     

    • SMF | SMF © 2013, Simple Machines
    • XHTML
    • RSS
    • WAP2
    Va un mudo y le dice a un sordo: Hack x Crack usa cookies. Pues eso... Learn more