NAME Attribute::TieClasses - attribute wrappers for CPAN Tie classes SYNOPSIS use Attribute::TieClasses; my $k : Timeout(EXPIRES => '+2s'); # loads in Tie::Scalar::Timeout and tie()s $k with those options DESCRIPTION Damian Conway's wonderful `Attribute::Handlers' module provides an easy way to use attributes for `tie()'ing variables. In effect, the code in the synopsis is simply use Attribute::Handlers autotie => { Timeout => 'Tie::Scalar::Timeout' }; Still, going one step further, it might be useful to have centrally defined attributes corresponding to commonly used Tie classes found on CPAN. Simply `use()'ing this module doesn't bring in all those potential Tie classes; they are only loaded when an attribute is actually used. The following attributes are defined: Attribute name(s) Variable ref Class the variable is tied to ================= ============ ============================= Alias HASH Tie::AliasHash Aliased HASH Tie::AliasHash Cache HASH Tie::Cache CharArray ARRAY Tie::CharArray Counter SCALAR Tie::Counter Cycle SCALAR Tie::Cycle DBI HASH Tie::DBI Decay SCALAR Tie::Scalar::Decay Defaults HASH Tie::HashDefaults Dict HASH Tie::TieDict Dir HASH Tie::Dir DirHandle HASH Tie::DirHandle Discovery HASH Tie::Discovery Dx HASH Tie::DxHash Encrypted HASH Tie::EncryptedHash FileLRU HASH Tie::FileLRUCache Fixed HASH Tie::SubstrHash FlipFlop SCALAR Tie::FlipFlop IPAddrKeyed HASH Tie::NetAddr::IP Insensitive HASH Tie::CPHash Ix HASH Tie::IxHash LDAP HASH Tie::LDAP LRU HASH Tie::Cache::LRU ListKeyed HASH Tie::ListKeyedHash Math HASH Tie::Math Mmap ARRAY Tie::MmapArray NumRange SCALAR Tie::NumRange NumRangeWrap SCALAR Tie::NumRangeWrap (in Tie::NumRange) Offset ARRAY Tie::OffsetArray Ordered HASH Tie::LLHash PackedInt ARRAY Tie::IntegerArray PerFH SCALAR Tie::PerFH Persistent HASH Tie::Persistent RDBM HASH Tie::RDBM Range HASH Tie::RangeHash RangeKeyed HASH Tie::RangeHash Rank HASH Tie::Hash::Rank Ranked HASH Tie::Hash::Rank Ref HASH Tie::RefHash Regexp HASH Tie::RegexpHash RegexpKeyed HASH Tie::RegexpHash Secure HASH Tie::SecureHash Sentient HASH Tie::SentientHash Shadow HASH Tie::ShadowHash Shadowed HASH Tie::ShadowHash Sort HASH Tie::SortHash Sorted HASH Tie::SortHash Strict HASH Tie::StrictHash Substr HASH Tie::SubstrHash TextDir HASH Tie::TextDir Timeout SCALAR Tie::Scalar::Timeout Toggle SCALAR Tie::Toggle Transact HASH Tie::TransactHash TwoLevel HASH Tie::TwoLevelHash Vec ARRAY Tie::VecArray Vector ARRAY Tie::VecArray WarnGlobal SCALAR Tie::WarnGlobal::Scalar I haven't had occasion to test all of these attributes; they were taken from the module descriptions on CPAN. For some modules where the name didn't ideally translate into an attribute name (e.g., `Tie::NetAddr::IP'), I have taken some artistic liberty to create an attribute name. Some tie classes require the use of the return value from `tie()' and are as such not directly usable by this mechanism, AFAIK. No censoring has been done as far as possible; there are several attributes that accomplish more or less the same thing. TIMTOWTDI. If you want any attribute added or renamed or find any mistakes or omissions, please contact me at . EXAMPLES # Tie::Scalar::Timeout my $m : Timeout(NUM_USES => 3, VALUE => 456, POLICY => 777); print "$m\n" for 1..5; # Tie::Hash::Rank my %scores : Ranked; %scores = ( Adams => 78, Davies => 35, Edwards => 84, Thomas => 47 ); print "$_: $scores{$_}\n" for qw(Adams Davies Edwards Thomas); # Tie::FlipFlop; my $ff : FlipFlop(qw/Red Green/); print "$ff\n" for 1..5; BUGS None known so far. If you find any bugs or oddities, please do inform the author. AUTHOR Marcel Grünauer, COPYRIGHT Copyright 2001 Marcel Grünauer. All rights reserved. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO perl(1), Attribute::Handlers(3pm).