Часть моего кода выглядит так:
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. Но длина музыки настолько мала, что она полностью остановится перед тем, как перейти к следующему этапу, поэтому я хочу, чтобы музыка повторялась, но модуль 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?» может быть НЕТ, но я предполагаю, что есть какой-то способ справиться с такой ситуацией. Поправьте меня если я ошибаюсь.
Спасибо как всегда за любые комментарии / предложения:)
UPDATE
Я действительно ценю помощь всех. Спасибо :) Так что ответ на мой вопрос - ДА, а не НЕТ. Я счастлив, что научился использовать fork () и потоки для решения реальной проблемы:)