将给定/当与 IO::Select can_read 一起使用
我正在制作一个 DIY 睡眠研究过滤器,它将记录来自音频流(2K 字节/秒)、加速度计(10 读数/秒)和控制台终端按键输入的事件。
我已经将这段代码放在一起:
$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 }
}
}
}
- 所有给定/当示例都使用字符串值或正则表达式。这适用于文件句柄吗?
- 我记得较慢的设备应该具有更高的优先级,以避免淹没在来自较快设备的大量数据输入中。应该如何使用 IO::Select add 和 can_read 处理这个问题?
我在 Ubuntu 20.04 桌面上使用 perl 5.30.0。感谢任何建议。
I am concocting a DIY sleep study filter that will log events from input from an audio stream (2K bytes/sec), an accelerometer (10 readings/sec) and console terminal keystrokes.
I have put together this chunk of code:
$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 }
}
}
}
- All of the given/when examples use string values or regular expressions. Will this work with filehandles?
- I recall that slower devices should have greater priority to avoid getting drowned in the flood of data input from faster devices. How should this be handled using IO::Select add and can_read?
I am using perl 5.30.0 on an Ubuntu 20.04 desktop. Appreciate any advice.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
智能匹配是实验并被认为是失败的。应该避免!
Smart matching is experimental and considered a failure. It should be avoided!
我喜欢为这类事情使用调度表,使用预期值作为哈希键,并使用子例程作为哈希值运行。一些 Perl 伪代码:
我在 Mastering Perl 和 有效的 Perl 编程。
I like dispatch tables for these sorts of things, using the expected values as hash keys and the subroutine to run as the hash values. Some Perl pseudocode:
I write quite a bit about replacing syntax structure with data structure in Mastering Perl and Effective Perl Programming.