#!/usr/bin/perl use strict; use warnings; package main; my $foo = { bla => { foo => { bar => "a"} } }; check($foo); sub check { my $bla = shift; my @key; if(ref($bla) eq 'HASH') { @key = keys %{ $bla }; print "<<$key[0]>>\n"; # tie %{ $bla }, "myTieHash"; $bla = $bla->{$key[0]}; check($bla); } } package myTieHash; #Konstruktor für ein Hash Tie sub TIEHASH { my $class = shift; my $self = { @_ }; return bless $self, $class; } #Routine für den Schreibzugriff sub STORE { my $self = shift; my ($key, $value) = @_; return $self->{ucfirst lc $key} = $value; } #Routine für den Lesezugriff sub FETCH { my ($self, $key) = @_; return $self->{ucfirst lc $key}; } 1;