Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Inside-Out Objects my %size; sub Perl 5.10 for People Who Aren't Totally Insane

141 404 vues

Publié le

Inside-Out Objects
my %size; sub CLONE {
sub size { my $class = shift;
my $self = shift;
my $id = refaddr $self; my @properties = map { values %$_ }
values %PROP_DATA_FOR;
if (@_) {
return $size{ $id } = shift; for my $old_id ( keys %OBJ ) {
} else {
return $size{ $id }; my $object = $OBJ{ $old_id };
} my $new_id = refaddr $object;
}
for my $prop ( @properties ) {
sub DESTROY { next unless exists $prop->{ $old };
my $id = refaddr $_[0]; $prop->{ $new } = $prop->{ $old };
delete $size{ $id }; delete $prop->{ $old };
} }

weaken ( $OBJ{ $new } = $object );
delete $OBJ{ $old };
}
}




Hash::Util::FieldHash

Publié dans : Business, Technologie
  • Must see for camel riders
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • I have learned a couple of things from your presentation. Nicely done!

    http://www.riding-mower.org/

    http://www.riding-mower.org/la105-john-deere-lawn-tractor/
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • The slides showing how awful it can be to have to manage your own inside-out objects are not intended to be a robust explanation of how to force yourself to suffer through it, but an overview of the various levels of annoyance that heap up without fieldhashes.<br /><br/>
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Errata: (?)

    Slide 88:
    =======
    Unless you meant to leave $id as an unused variable to resolve in later slides, I'd suggest this change....

    s( $site{$self} )
    ( $site{$id} )gx

    Slide 89:
    =======
    Ditto

    Also, make these changes
    $new should be $new_id
    $old should be $old_id<br /><br/>
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Perl 5.10 has been released!
    http://search.cpan.org/~rgarcia/perl-5.10.0/<br /><br/>
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici

×