Acme::Class::Std - "Enhances" Class::Std;


Acme-Class-Std documentation  | view source Contained in the Acme-Class-Std distribution.

Index


NAME

Top

Acme::Class::Std - "Enhances" Class::Std;

SYNOPSIS

Top

  package Jugarum;
  use Acme::Class::Std;
  package main;
  my $obj = Jugarum->new; # Can't accidentally be serialised.

DESCRIPTION

Top

Class::Std's inside out objects are wonderful, but all the common serialisation packages assume that because they can see inside them, they can successfully serialise your object. Wrong! Because all they serialise is the ID, you may suffer data loss without realising.

Acme::Class::Std shows those pesky serialise modules just who is boss. They can go peeking and prodding, but they will get their fingers burnt:

Data::Dumper
    package Kakroosh;
    use Acme::Class::Std;
    package main;
    $o = Foo->new;
    use Data::Dumper;
    print Dumper $o;

    cannot handle ref type 15 at /usr/local/lib/perl5/5.8.8/i386-freebsd/Data/Dumper.pm line 179.
    $VAR1 = bless( , 'Foo' );

Storable
    package Kakroosh;
    use Acme::Class::Std;
    package main;
    $o = Foo->new;
    use Storable;
    my $f = Storable::freeze $o;

    Can't store IO items at ../../lib/Storable.pm (autosplit into ../../lib/auto/Storable/_freeze.al) line 290, at -e line 1

YAML
    package Kakroosh;
    use Acme::Class::Std;
    package main;
    $o = Foo->new;
    use YAML;
    print Dump $o;

    YAML Error: Can't create YAML::Node from 'IO'
       Code: Can't create YAML::Node from 'IO'
     at /usr/local/lib/perl5/site_perl/5.8.8/YAML/Types.pm line 22

EXPORT

Everything that Class::Std exports

SEE ALSO

Top

Class::Std

BUGS

Top

I started out with using anonymous FORMAT references. After all, they have to be useful for something. But sadly the internals thinks that it can copy them, and everything assumes that it can serialise them.

This class may be too sensible for Acme::. I hope that the Makefile.PL makes up for it.

AUTHOR

Top

Nicholas Clark, <nwc10+acme-class-std@colon.colondot.net>

COPYRIGHT AND LICENSE

Top


Acme-Class-Std documentation  | view source Contained in the Acme-Class-Std distribution.