Generaly, session files look something like this:
$D = {
"_SESSION_EXPIRE_LIST" => {},
"_SESSION_REMOTE_ADDR" => "127.0.0.1",
"_SESSION_ATIME" => "1057334715",
"_SESSION_CTIME" => "1057334688",
"_SESSION_ID" => "2edc038f30ed95d3bd43f113b5385a5d",
"_SESSION_ETIME" => undef
};
(Note, I've added some formatting. It's usually just one long line.)
As you can see it's a dumped (see Data::Dumper) data structure. It starts off with an assignment to $D. When using strict you have to declare your variables. Thus my $D; before the eval.
By eval()ing, I'm executing that code, thus doing the assignment to $D.
Check this out:
use strict;
local $/;
my $D;
eval( <DATA> );
print $D->{ _SESSION_ID };
__DATA__
$D = {
"_SESSION_EXPIRE_LIST" => {},
"_SESSION_REMOTE_ADDR" => "127.0.0.1",
"_SESSION_ATIME" => "1057334715",
"_SESSION_CTIME" => "1057334688",
"_SESSION_ID" => "2edc038f30ed95d3bd43f113b5385a5d",
"_SESSION_ETIME" => undef
};
Try commenting out my $D;. You'll get an error.
HTH
-- "To err is human, but to really foul things up you need a computer." --Paul Ehrlich
|