Hello,

I have a problem while using CGI::Session, when I try to store an object. After a few tests, I've isolated the problem.

I have got a class (Md), which contains a method param().

When I dump (data::Dumper) an object of this class, when I 'thaw' it with Safe (which basically do sandbox'ed eval), I get an object from the right class, but which can not execute param();

See following code for explanation:

#!/usr/bin/perl use strict; use Data::Dumper; use Safe; package Md; sub new {bless {'plop' => 'coin'}, $_[0]}; sub param {return $_[0]->{$_[1]};} package main; #Object and dump creation my $md = Md->new(); my $dump = Dumper($md); #'eval'ed dump my $mde = eval($dump); print defined $mde ? "Defined" : "undef"; # => print undef, bad #Dump 'Safe' eval my $mdr = Safe->new->reval( $dump ); print defined $mdr ? "Defined" : "undef"; # => print defined, good print $mdr->can('param') ? "yes" : "No"; # => print No. Why?

Why a Md object ($mdr) cannot execute one of the Md methods?

Notes:
I noticed that by using $Data::Dumper::Terse or without 'use strict' it is possible to restore the object as intended, but the problem is hidden inside CGI::Session, I thus cannot use these solutions.

Thanks for you help


In reply to CGI::Session cannot read data from Data::Dumper by lom

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.