[...] # read files my $data_to_append = &datei_lesen($erste_datei,0); my $full_data = &datei_lesen($andere_datei,1);[...] sub datei_lesen{ # pick parameters my($file,$index) = @_; # open file open(my$fhIN, '<', $file) or die "open failed: $!"; # read data my %data; while (my$line=<$fhIN>) { chomp($line); # split line my @tracts = split('#', $line); # key equals the first tract my $key = $tracts[$index]; my $val = [@tracts]; # push data $data{$key} = [] unless exists $data{$key}; push(@{$data{$key}}, $val); } # close file close($fhIN); # return data reference return \%data; } # datei_lesen