use strict; use warnings; my @array = qw( 1nkndnfd 2nsnskdnsdn 3ddjsjd 4fksjsdj 5kdsjdskjdskj 1ksdjdjsk hg 2dsjskj 3djkdjsljs 4fdkkjdskjsk 5sadjjdjdodjs 6sadjjdjdodjs ); foreach (@array) { my ( $num, $data ) = /(\d)(.*)/; next if ( !length $num || !length $data || $num !~ /[1-5]/ ); open my $file, '+>>', "round_robin_$num" . ".txt"; print $file "$num - $data\n"; }