in reply to dualvar for a reference-string combination
use strict; use warnings; use Scalar::Util qw/dualvar/; use Hash::Util::FieldHash qw/id id_2obj register/; { package Baz; use Hash::Util::FieldHash qw/register/; sub new { my $class = shift; my $self = bless {}, $class; register $self; $self } sub test { 'In object Baz'; } } my $b = Baz->new; my $x = dualvar( id( $b ), 'Baz says Hi' ); print "$x - ", (id_2obj($x+0))->test(),"\n";
If you are on a Perl less than 5.10, you should use Hash::Util::FieldHash::Compat instead, which is a drop-in replacement for Hash::Util::FieldHash which uses a different method on Perl's before 5.10 and just redirects to Hash::Util::FieldHash on 5.10+.use strict; use warnings; use Scalar::Util qw/dualvar/; use Hash::Util::FieldHash qw/id id_2obj register/; use Time::Piece; register my $t = Time::Piece::localtime; # Time::Piece object my $x = dualvar( id( $t ), "$t" ); print "$x = ", (id_2obj($x+0))->epoch, " seconds since the epoch\n"
|
|---|