use Modern::Perl; my @filehandle; my $maxlength = 10; for ( 1 .. $maxlength ) { open $filehandle[$_], '>', "text$_.txt" or die "Could not open text$_.txt"; } while () { chomp; select $filehandle[ length($_) ]; say $_; } __DATA__ ABC DEFG HIJ KL 1234XYZ G HI S 12ER 34TY