Thread push zu arrayref
(33 answers)
Opened by Froschpopo at 2008-05-10 16:42
So ähnlich könnte man es doch auch machen:
Code (perl): (dl
)
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 64 65 66 67 68 69 70 71 72 package HashRef; sub new { my $class=shift; my $ref=shift || {}; $ref=ref($ref) eq 'HASH'? $ref : {}; my $self={ref=>$ref); $self->{cnt}=0; bless($self,$class); return $self; } sub unref { my $self=shift; $self->{cnt}=0; return(%{$self->{ref}}); } sub ref { my $self=shift; $self->{cnt}=0; if(@_ && ref($[0]) eq 'HASH') { $ref{ref} } else { return $self->{ref} } } sub keys { my $self=shift; $self->{cnt}=0; return(keys(%{$self->{ref}})); } sub each { my $self=shift; my @l=%{$self->{ref}}; @l=splice(@l,$self->{ref},2); $self->{ref}+=2; return @l; } sub get { my $self=shift; my $key=shift; return $sef->{ref]->{$key}; } sub set { my $self=shift; my $key=shift; my $value=shift; $sef->{ref]->{$key}=$value; } sub exists { my $self=shift; my $key=shift; return exists($sef->{ref]->{$key}); } sub type { return 'HASH'; } 1; |