#!/usr/bin/perl use strict; use warnings; my @list = qw(a b c); my %fh; foreach my $f(@list){ foreach my $s(@list){ my $key = $f.$s; open($fh{$key}, ">", "fh_$key.txt") or die; } } while(){ chomp; my $sub = substr($_, 0,2); print $fh{$sub} "$sub\n"; } __DATA__ aaK acK bcK baK bbK