私のコードの一部は次のようになります:
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;
}
問題は、whileループのDoSomeStuffステージにいるときに音楽を常にオンにしたいということです。しかし、音楽の長さが非常に短いため、次のステージに進む前に完全に停止するので、音楽を繰り返してほしいのですが、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
}
しかし、現在のPerlの知識に基づいて、while(1)の部分にいる場合、while(2)の部分に進むことはできません。ネストされたループの場合でも、外側のループの他の部分に移動する前に、内側のループから抜け出すために何かをする必要があります。
私の質問に対する答え「Perlで2つのネストされていないループを同時に実行できますか?」いいえかもしれませんが、そのような状況に対処する方法があると思います。私が間違っている場合は私を訂正してください。
コメント/提案をいつもありがとう:)
アップデート
皆様のご協力に心より感謝申し上げます。ありがとう:)だから私の質問への答えはイエスであり、ノーではありません。fork()とスレッドを使用して実際の問題を解決する方法を学んだことをうれしく思います:)