use strict; use CGI; use CGI::Cookie; use vars qw($q $switch $status $sessionID); init(); print_header(); print_status(); sub init { $q = new CGI; $switch = $q->param("switch") ? 1 : 0; my %cookies = CGI::Cookie->fetch; $sessionID = exists $cookies{'sessionID'} ? $cookies{'sessionID'}->value : ''; # 0 = not running, 1 = running $status = $sessionID ? 1 : 0; # switch status if asked to $status = !$status if $switch; if ($status) { # preserve sessionID if exists or create a new one $sessionID ||= generate_sessionID() if $status; } else { # delete the sessionID $sessionID = ''; } } sub print_header { my $c = CGI::Cookie->new( -name => 'sessionID', -value => $sessionID, -expires => '+1h' ); print $q->header( -type => 'text/html', -cookie => $c ); } # print the current Session status and a form to toggle the status sub print_status { print qq{