Thanks to Jose and all others who posted. I now have a working nested hash and a better understanding of them.
Scot -----Original Message----- From: NYIMI Jose (BMB) [mailto:[EMAIL PROTECTED]] Sent: Tuesday, January 21, 2003 7:34 AM To: [EMAIL PROTECTED] Subject: RE: Nested hash creation help ! > -----Original Message----- > From: Scot Needy [mailto:[EMAIL PROTECTED]] > Sent: Monday, January 20, 2003 4:58 PM > To: NYIMI Jose (BMB); Beginners Perl > Subject: RE: Nested hash creation help ! > > > > Thanks Jose! > > I have the hash created and now can see the values > using Data::Dumper but now I an having trouble walking the > hashtree. Trying to walk back out to each leaf value in the tree. > > Hash def > $time=>{$custname}{$custsub}{$site}{$YYMMDDay}{'start'} = $hhmmsss; > > > This doesn't seem to get anything but $c. > > foreach my $c (sort keys %time) { > print "Cust $c\n"; > foreach my $cs (sort keys %{$time->{$c}}) { If you write this $time->{key} that means the variable 'time' is a 'reference to an hash' not an 'hash'. Since you declared your 'time' beeing an hash as follow: %time=(); You should not be using the arrow notation. Use this intead : $time{key} If really want to arrow notation, you need to declare 'time' like this : my $time={};#reference to an anonymous hash #filling-in as follow $time->{$custname}{$custsub}{$site}{$YYMMDDay}{'start'} = $hhmmsss; #dereference stuff foreach my $c (sort keys %{$time} ) { bla bla .. } HTH, José. > foreach my $s (sort keys %{$time->{$c}->{$cs}}) { > print "Site $c.$cs.$s \n" > #..etc . next branch . etc > } > } > } > > > -----Original Message----- > From: NYIMI Jose (BMB) [mailto:[EMAIL PROTECTED]] > Sent: Monday, January 20, 2003 6:11 AM > To: [EMAIL PROTECTED]; Beginners Perl > Subject: RE: Nested hash creation help ! > > > Afterwards, to see how your nested hash looks like, > try this: > > use Data::Dumper; > print Dumper(\%time); > > José. > > > -----Original Message----- > > From: Scot Needy [mailto:[EMAIL PROTECTED]] > > Sent: Monday, January 20, 2003 6:50 AM > > To: Beginners Perl > > Subject: Nested hash creation help ! > > > > > > Hi; > > > > Trying to crate a nested hash from variables parsed out of > log files > > but as I am a "Beginner Perl' coder it is failing terribly. The > > basic question > > is given you have 5 variables how would you make a nested hash. > > > > Thanks ! > > Scot > > > > I hope this is enough code to example my problem. > > -------------- snip ---------------------- > > foreach (@wwwlogs) { > > %time=(); > > ($wwwname,$cust,$YYMMDDay) = split('\.',$_); > > open (LOG, $_ ) || die "Can't open $_!: $! \n"; > > while (LOG>) { > > chomp; > > # Walk through log file and look for our string. > > ($pid,$hhmmss,$host,$custname,$custsub,$site,$junk) > > = split('\|',$_); > > # print(SPLITVARS= $hhmmss,$host,$custname,$custsub,$site\n); > > $time=>{$custname}=>{$custsub}=>{$site}=>{$YYMMDDay} > > = $hhmmss; > > > > } etc etc etc > > > > -- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > **** DISCLAIMER **** > > "This e-mail and any attachment thereto may contain > information which is confidential and/or protected by > intellectual property rights and are intended for the sole > use of the recipient(s) named above. Any use of the > information contained herein (including, but not limited to, > total or partial reproduction, communication or distribution > in any form) by other persons than the designated > recipient(s) is prohibited. If you have received this e-mail > in error, please notify the sender either by telephone or by > e-mail and delete the material from any computer". > > Thank you for your cooperation. > > For further information about Proximus mobile phone services > please see our website at http://www.proximus.be or refer to > any Proximus agent. > > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]