#! usr/bin/perl use strict; use warnings; use IO::File; my @out; my @file_names = ("output1.txt", "output2.txt", "output3.txt"); my $i = 0; while (<>){ foreach (@ARGV){ open (READ, $ARGV) || die "Cannot open $ARGV: $!.\n"; $out[$i] = IO::File->new( ">file_names[$i]" ) || die "Cannot open file_names[$i]: $!.\n"; $i++; while ( ){ print {$out[$i]} "$_"; } } }