#! perl -slw use strict; use Win32::Semaphore; ( my $semName = $0 ) =~s[\\][/]g; die 'Program already running' if Win32::Semaphore->open( $semName ); my $sem = Win32::Semaphore->new( 1, 1, $semName ) or die $^E; sleep 1000; __END__ c:\test>start /b loner.pl c:\test>loner.pl Program already running at c:\test\loner.pl line 6.