Activestate's perlsvc from their "Perl Developement Kit" converts your Perl program to a Win32 service. If I remember correctly you also have to provide some subs with given name, which perlsvc wraps into an interface to the Windows service controller.
Im not sure there is a use for a (blocking!) MsgBox inside of service code, let alone on which desktop it will display (desktop of the user the service is installed under, if at all, I assume.)
If you just want an executable, you'll probably need perlapp from the same Kit.