$/ = ""; while(<>) { chomp; my ($k, $v) = split /\t/; my $k1 = (split /\n/, $k, 3)[1]; my $out = -e $k1 ? "$value\n" : "$key:$value\n"; open my $ofh, '>>', $k1 or die $!; print $ofh $out; close $ofh or die $!; } foreach my $file (sort glob('./')) { open my $ifh, '<', $file or die $!; # ... and so on... }