in reply to Re: separate data and print to two files
in thread separate data and print to two files

... I will assume your Regular file will contain the dashes.

Actually, it appears to be the other way around. And here's an even simpler way (no need to split):

#!/usr/bin/perl use strict; use warnings; my @filenames = qw/Reg Irreg/; my %ofh = map { open( my $fh, ">", $_.'ularOlios.txt' ) or die $!; $_ => $fh + } @filenames; while (<DATA>) { my $o = ( /^\w+-/ ) ? $ofh{Irreg} : $ofh{Reg}; print $o $_; } close $_ for ( values %ofh ); __DATA__ 10002TU AGACATTACCTGTGAGACACCTTTC GCCTCCACCTCAGAGTCAG TCCATGGG +AAGGATCTCCGTGAAATCA 10002TU-2 GCTCCAGCTAGAAGAGAATCC CCCACCAGGGCTGTGTAAG CCTGTGAG +ATAGTACAGCTGAAGAGTTGGC 10002TD TGTGTTGATTCTCAGCCTCTTG GACGGAGCACATAGGCAAAG TCTGTTCT +TCTCAGCTGTCTTTGTTGCTGC 10003TU CAGCAAGCCCTGAGGTGTG CAGTGAACTGAGAAAGACGAGAGG TGCAAGTC +CAGATGGAGGCCACC 10174TU-2 ACCTGAACAGCCTGACATGAAC TGGGATGGAGGGCAAAGTC CCACCTAG +TATGACCCAGCACACCTCC