Witam!

Może na początek kod:

until($tablica[$i] =~ m/koniec/)
{
				
	$tablica[$i] =~ s/\ //g;
        @TablicaDanych = split( $separator, $tablica[$i]);
					
	for ($j = 0; $j < $#TablicaDanych+1; $j++) 
	{
			
	      $wiersz{$TablicaKluczy[$j]} = $TablicaDanych[$j];
						
						
	} 
				
					
	$hash{$k} = (\%wiersz);					
	
        $k++;				
	$i++;	
					
}

Więc pobieram z wejścia jakieś dane do tablicy, a później wpisuje to do %wiersz. Następnie do hasha wpisuje referencje do %wiersza. Niestety %wiersz non stop nadpisuje ten sam fragment pamięci co kończy się tym że wszystkie hashe odwołują się do tych samych danych. Próbowałem zamiast referencji podawać wartość ale wtedy wypisywanie się sypie

print $hash{'1'}{'nazwisko'}."\n";
print $hash{'2'}{'nazwisko'}."\n";