if( ! @ARGV ) { # CGI code here my $pid = CORE::fork(); die "Can't fork: $!\n" if ! defined $pid; exit # or return, or whatever makes most sense to finish CGI part if $pid; CORE::exec( 'perl', $0, 'daemon' ); die "Can't exec perl: $!\n"; } # Rest of code here