• Publicidad

Qué significa qw

Perl aplicado a la bioinformática

Qué significa qw

Notapor mparrado8 » 2013-05-03 11:34 @523

Hola, me he pasado del foro de Perl Básico al de Bioinformática, y ando tan perdida como antes. Qué significa la qw(), y en general toda esa expresión? Aparece en un programa que lo que hace es buscar genes

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my @genes = qw(
  2.   xgene1 agene2 mgene3 zgene4 cgene5
  3. );
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
mparrado8
Perlero nuevo
Perlero nuevo
 
Mensajes: 32
Registrado: 2013-04-10 12:58 @582

Publicidad

Re: Qué significa qw

Notapor CrozzCyborg » 2013-05-03 13:30 @604

Sirve para definir una lista de una forma más sencilla, en vez de estar poniendo
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my @genes = ('xgene1', 'agene2', 'mgene3', 'zgene4', 'cgene5');
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


La función qw() hace un split) al string separándolo por los espacios y así se convierte en una lista, luego se asigna al array @genes.
CrozzCyborg
Perlero nuevo
Perlero nuevo
 
Mensajes: 7
Registrado: 2013-04-26 02:41 @153

Re: Qué significa qw

Notapor explorer » 2013-05-03 13:53 @620

Sí, sí que hace un split(), pero en tiempo de compilación, no de ejecución.

Extraído de perldoc -f qw
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
qw/CADENA/
    Evalúa a una lista de palabras extraídas de CADENA, utilizando los espacios en blanco
    incrustados como delimitadores de palabras.  Puede ser entendida como equivalente a:

               split(" ", q/CADENA/);

    siendo diferente en que genera una lista real en tiempo de compilación, y en contexto
    escalar devuelve el último elemento de la lista.  Así que esta expresión:

               qw(foo bar baz)

    es semánticamente equivalente a la lista:

               "foo", "bar", "baz"

    Algunos ejemplos que suelen encontrarse frecuentemente:

               use POSIX qw( setlocale localeconv )
               @EXPORT = qw( foo bar baz );

    Un error común es tratar de separar las palabras con una coma o poner comentarios
    en una cadena "qw" multilínea.  Por esta razón, el pragma "use warnings" y la
    opción -w (es decir, la variable $^W) produce advertencias de si la cadena
    contiene la "," o el carácter "#".
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Qué significa qw

Notapor mparrado8 » 2013-05-09 03:26 @184

Muchas gracias,
y otra pregunta: tratamos de hacer un programa de mutaciones aleatorias y no sabemos qué significa esto: int

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. sub randomposition {
  2.     my($string) = @_;
  3.    
  4.     return int rand length $string;
  5. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
mparrado8
Perlero nuevo
Perlero nuevo
 
Mensajes: 32
Registrado: 2013-04-10 12:58 @582

Re: Qué significa qw

Notapor explorer » 2013-05-09 03:33 @189

Es la función que devuelve la parte entera de la expresión que le sigue..

Sacado de perldoc -f int
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
       int EXPR
       int     Devuelve la parte entera de EXPR.  Si se omite EXPR, se usa $_.  No debe usar
               esta función para redondear: primero, porque trunca hacia 0 y segundo, porque
               las representaciones máquina de números en punto flotante puede producir, algunas
               veces, resultados dispares.  Por ejemplo, "int(-6.725/0.025)" produce -268 en vez
               del valor correcto -269; esto es porque el valor realmente es -268.99999999999994315658.
               Usualmente, las funciones "sprintf", "printf", o "POSIX::floor" y "POSIX::ceil"
               le servirán mejor que int().
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

(Ejecuta perldoc -f int en tu ordenador)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Qué significa qw

Notapor mparrado8 » 2013-05-10 06:58 @332

Gracias, ¡ahora lo entiendo todo!
mparrado8
Perlero nuevo
Perlero nuevo
 
Mensajes: 32
Registrado: 2013-04-10 12:58 @582


Volver a Bioinformática

¿Quién está conectado?

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