Acme-Class-Std

 view release on metacpan or  search on metacpan

Std.pm  view on Meta::CPAN

  $enhanced{+caller}++;
  goto &Class::Std::import;
}

sub ID ($) {
  my ($package, undef, undef, $sub) = caller 1;
  if ($sub eq 'Class::Std::new' && $_[0]->isa('SCALAR')
      && ($all || $enhanced{ref $_[0]})) {
    # Strangely, it seems that one can dup an unopened file handle without
    # warnings.
    eval "open $count, '<&dead'";
    my $ref = *{delete $Acme::Class::Std::{$count++}}{IO};
    $_[0] = bless $ref, ref $_[0];
  }
  goto &Scalar::Util::refaddr;
}

{
  local $^W;
  *Class::Std::ID = \&ID;
}

t/acmified_is_best.t  view on Meta::CPAN


package main;

use Storable 'freeze';

use Test::More tests => 6;

my $normal = Sputz->new;
ok($normal, "Got something");
ok($normal->isa("SCALAR"), "But it's a scalar reference");
my $frozen = eval {freeze($normal)};
is ($@, '', "Can freeze it");

my $acmified = Gishklork->new;
ok($acmified, "Got something");
ok($acmified->isa("IO"), "It's an IO reference");
$frozen = eval {freeze($acmified)};
like ($@, qr/Can't store/, "Can't freeze Acme::Class::Std objects");






( run in 2.163 seconds using v1.01-cache-2.11-cpan-98e64b0badf )