use IO::File; my $files = { 'x', 'a', 'y', 'b', 'z', 'c' }; for( keys %{$files} ){ $read = new IO::File "< $_"; die "can't open_r $read: $!" unless defined($read); $write = new IO::File "> $files->{$_}"; die "can't open_w $write: $!" unless defined($write); print $write $_ while <$read>; $read->close; $write->close; }