in reply to Code works fine, but in subroutine does not... help plz!

You're probably getting the error when $session goes out of scope and its DESTROY method is called. Putting a warn "here!"; at the end of test would confirm that, if the error message appeared after "here!". I don't know why you're getting the error, but then again, I'm not familiar with this module. Is there something that must be done beore the object is destroyed?

Replies are listed 'Best First'.
Re^2: Code works fine, but in subroutine does not... help plz!
by ikegami (Patriarch) on Apr 08, 2005 at 05:18 UTC

    I looked at the source for CGI::Session and CGI::Session::File. The error is originating from CGI::Session::File::remove which is called when a deleted session is DESTROYed. However, the session you just created was never saved, so there's no file to delete yet. So, instead of deleting the new sessions (or trying to), I'd just make sure it never gets saved:

    ... if ( $session->is_new() ) { # Make CGI::Session think no save is needed # by simulating a call to flush. $session->{_STATUS} = &CGI::Session::SYNCED; # Make sure we don't use the session by accident. undef $session; } else { ...

    Other solutions:

      This seems to work beautifully.

      Thx a TON!!!!!

      Stenyj