1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
package Vegetable;
package Potatoe ;
use AutoLoader ;
@ISA = ("Vegetable");
sub AUTOLOAD{} ;
package SuperObject ;
@ISA = ("Potatoe");
package SuperObjectWithAutoload ;
@ISA = ("Potatoe");
sub AUTOLOAD{} ;
package TiedHash;
use Tie::Hash;
@ISA = (Tie::StdHash);
package TiedArray;
use Tie::Array;
@ISA = ('Tie::StdArray');
package TiedScalar;
use Tie::Scalar;
@ISA = (Tie::StdScalar);
package TiedHandle;
use Tie::Handle ;
our @ISA = 'Tie::StdHandle';
package main ;
use strict ;
use warnings ;
use Carp ;
use Data::TreeDumper ;
$Data::TreeDumper::Displayinheritance = 1 ;
$Data::TreeDumper::Displayautoload = 1 ;
$Data::TreeDumper::Displaytie = 1 ;
$Data::TreeDumper::Displayrootaddress = 1 ;
use Devel::Peek ;
tie my %tied_hash_object, "TiedHash" ;
%tied_hash_object = (m1 => 1) ;
bless \%tied_hash_object, 'SuperObject' ;
tie my $tied_scalar_object, "TiedScalar" ;
$tied_scalar_object = 7 ;
bless \$tied_scalar_object, 'SuperObject' ;
tie *FH, 'TiedHandle';
bless \*FH, 'SuperObject' ;
print DumpTree(\%tied_hash_object, '%tied_hash_object') ;
print DumpTree(\$tied_scalar_object, '$tied_scalar_object') ;
print DumpTree(\*FH, '*tied_handle') ;
#~ print Dump %tied_hash_object ;
|