相关疑难解决方法(0)

我们可以在Perl中同时运行两个非嵌套循环吗?

我的部分代码是这样的:

while(1){
        my $winmm = new Win32::MediaPlayer;   
        $winmm->load('1.mp3'); $winmm->play; $winmm->volume(100);
        Do Some Stuff;
        last if some condition is met;
    }
Run Code Online (Sandbox Code Playgroud)

问题是:当我在while循环中的Do Some Stuff阶段时,我希望音乐始终打开.但是音乐的长度很短,在我进入下一个阶段之前它会完全停止,所以我希望音乐重演,但Win32 :: Mediaplayer模块似乎没有重复模式,所以我想为音乐播放部分做一个无限循环.像这样:

while(1){
 my $winmm = new Win32::MediaPlayer;   
 $winmm->load('1.mp3'); $winmm->play; $winmm->volume(100);
}
while(2){
Do some stuff;
last if some condition is met
}
Run Code Online (Sandbox Code Playgroud)

但根据我目前的Perl知识,如果我在while(1)部分,我永远不会去while(2)部分.即使它涉及到嵌套循环,我也必须做一些事情来突破内部循环,然后再转到外部循环的其他部分.

我的问题的答案"我们可以在Perl中同时运行两个非嵌套循环吗?" 可能是NO,但我认为有一些方法可以处理这种情况.如我错了请纠正我.

一如既往地感谢任何意见/建议:)

UPDATE

我非常感谢大家的帮助.谢谢:)所以我的问题的答案是肯定的,而不是否定的.我很高兴我已经学会了如何使用fork()和线程来解决一个真正的问题:)

perl loops simultaneous

7
推荐指数
2
解决办法
1582
查看次数

标签 统计

loops ×1

perl ×1

simultaneous ×1