davorg has asked for the wisdom of the Perl Monks concerning the following question:
According to the documentation Attribute::Handlers is "an excellent and intuitive interface through which to tie variables". I've tied a few variables in my time so I thought I'd give it a go.
But I think I'm misunderstanding it, as it doesn't give me the results I expect.
Here's a simple tied hash (that doesn't do anything useful)
#!/usr/bin/perl -w package Tie::Hash::Test; use Tie::Hash; use vars qw(@ISA); @ISA = 'Tie::StdHash'; sub TIEHASH { my $class = shift; my %self; @self{@_} = (undef) x @_; bless \%self, $class; } package main; tie my %hash, 'Tie::Hash::Test', 'one', 'two', 'three'; print join(':', keys %hash), "\n";
Running this code gives the expected results of:
one:three:two
Here's the same tied hash using attributes:
#!/usr/bin/perl -w package Tie::Hash::Test; use Tie::Hash; use Attribute::Handlers autotie => { __CALLER__::Test => __PACKAGE__ } +; use vars qw(@ISA); @ISA = 'Tie::StdHash'; sub TIEHASH { my $class = shift; my %self; @self{@_} = (undef) x @_; bless \%self, $class; } package main; my %hash : Test('one', 'two', 'three'); print join(':', keys %hash), "\n";
Running this code gives the result:
ARRAY(0x80f551c)
Which isn't quite what I expected.
Has anyone else tried this? Have you had better luck?
--"The first rule of Perl club is you don't talk about Perl club."
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: autotie in Attribute Handlers
by TheDamian (Vicar) on Nov 04, 2001 at 17:13 UTC | |
|
Re (tilly) 1: autotie in Attribute Handlers
by tilly (Archbishop) on Nov 03, 2001 at 09:17 UTC | |
by TheDamian (Vicar) on Nov 04, 2001 at 03:27 UTC | |
by tilly (Archbishop) on Nov 04, 2001 at 04:27 UTC | |
by TheDamian (Vicar) on Nov 04, 2001 at 05:12 UTC |