#!/usr/bin/perl $putword=0; $q63=7; &getfile("query63.txt"); sub getfile { open (FILE, $_[0]); my @data = ; close (DATA); for($i=0; $i<=$#data;$i++){ $index=$i; @words=split(/\s+/,$data[$index]); $count=$#words; if($count==2) { @words = split(/\s+/,$data[$index]); $count=0; $putword=$putword+1; if ($words[2] != 0){ $ctf=$words[1]; $df=$words[2]; } } else { @words = split(/\s+/,$data[$index]); %query=($putword =>{ctf=>$ctf, df=>$df, $words[1]=>{doclen =>$words[2], tf =>$words[3], } }, ); #When I write here,I can get value..here inside the loop #print $query{2}{1}{doclen}; } } #when I write here,I got nothing,,this is outside of loop.. print $query{2}{1}{doclen};But }