Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

201
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!