Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

210
Visualizações
Usando dado/cuando con IO::Select can_read

Estoy inventando un filtro de estudio del sueño de bricolaje que registrará eventos de la entrada de una transmisión de audio (2K bytes/seg), un acelerómetro (10 lecturas/seg) y pulsaciones de teclas de la terminal de la consola.

He reunido este trozo de código:

 $SELECT=IO::Select->new or die "muffed create SELECT: $!\n" ; my $i ; foreach ($AREC,$IMU,$STDIN) { $i++ ; $SELECT->add($_) or die "muffed SELECT $i: $!\n" ; } while (TRUE) { foreach ($SELECT->can_read ) { given ($_) { when ($AREC) {}# handle audio from pipe when ($IMU) {}# handle acceleromter from UDP socket} when ($STDIN) {}# handle keystrokes } } } }
  1. Todos los ejemplos dados/cuando usan valores de cadena o expresiones regulares. ¿Funcionará esto con identificadores de archivo?
  2. Recuerdo que los dispositivos más lentos deberían tener mayor prioridad para evitar ahogarse en la avalancha de entrada de datos de dispositivos más rápidos. ¿Cómo se debe manejar esto usando IO::Select add y can_read?

Estoy usando perl 5.30.0 en un escritorio Ubuntu 20.04. Agradezco cualquier consejo.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

La coincidencia inteligente es experimental y se considera un fracaso. ¡Debe evitarse!

 while (1) { for ($SELECT->can_read ) { if ( $_ == $AREC ) { } elsif ( $_ == $IMU ) { } elsif ( $_ == $STDIN ) { } } }
over 4 years ago · Santiago Trujillo Relatório

0

Me gustan las tablas de despacho para este tipo de cosas, usando los valores esperados como claves hash y la subrutina para ejecutarse como valores hash. Algo de pseudocódigo de Perl:

 my $subs = ( SOME_AREC_VALUE => sub { ... }, SOME_IMU_VALUE => sub { ... }, SOME_STDIN_VALUE => sub { ... }, ); $subs->{$_}->();

Escribo bastante sobre la sustitución de la estructura sintáctica por la estructura de datos en Mastering Perl y en la Programación eficaz en Perl .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda