First: Using cookies within perl, refer to CGI.pm. When you send the HTTP header, you send the cookies off with it.
Second: You specify the expiry time for a cookie when you send it in the header; it's then up to the specific browser to decide when to remove it after the expiry is over with -- some do this on startup, some on shutdown, but that's not your problem.
Third: with CGI.pl, you have to send the cookie off with the header in order to have it set. With how HTTP is configured, the CGI.pm variable will get the pertient cookie information from the user during initialization, so you'll be able to check for any cookies that you might have put out at any time during the use of CGI.pm.