No, preferably provide some sort of clue as to why a while loop would stop if the player stops in a way other that naturally.
I have a guess. Underneath, poll() is talking to mpg321 using IO::Open2 and stuff like that. If you close a program that has a IO::Handle object and stuff, could that make the while loop freeze? I'll test it out in a minute.
Sorry, again. I didn't mean to sound like I was expecting somebody to just debug it for me. I was just looking for some clues. Besides, the program is usable (I run it all the time) and I thought somebody might be intersted.