Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

Re^4: Perl Syntax

by davido (Cardinal)
on Oct 30, 2013 at 21:45 UTC ( #1060454=note: print w/replies, xml ) Need Help??

in reply to Re^3: Perl Syntax
in thread Perl Syntax

Some call it code smell, others call it the basis for managing inside-out objects.

Update: Example from Class::Std:

sub import { my $caller = caller; no strict 'refs'; *{ $caller . '::ident' } = \&Scalar::Util::refaddr;


Replies are listed 'Best First'.
Re^5: Perl Syntax
by tobyink (Canon) on Oct 30, 2013 at 22:36 UTC

    Not an especially useful technique for managing inside-out objects. (Not without some care anyway.) Reference addresses can be recycled.

    use strict; use warnings; use Scalar::Util 'refaddr'; use Data::Dumper; for my $i (0..2) { my $hash = [$i]; printf "The hash has refaddr %08X, and contents are...\n", refaddr +($hash); print Data::Dumper->Dump([$hash], ['$hash']); }

    With carefully written CLONE and DESTROY methods, using the refaddr as a hash key can be made to work, but something like Hash::FieldHash saves a lot of work.

    use Moops; class Cow :rw { has name => (default => 'Ermintrude') }; say Cow->new->name

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1060454]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (2)
As of 2023-01-27 18:03 GMT
Find Nodes?
    Voting Booth?

    No recent polls found