in reply to separate data and print to two files

Since you did not specify, I will assume your Regular file will contain the dashes. If this does not do what you want, then you must show the desired output:
use strict; use warnings; open my $reg_out , '>', 'RegularOligos.txt' or die "can not open fi +le RegularOligos.txt:$!"; open my $irreg_out, '>', 'IrregularOligos.txt' or die "can not open fi +le IrregularOligos.txt:$!"; while(<DATA>){ chomp; my @fields = split; my $line = join "\t", @fields; if ($fields[0] =~ /-/){ print $reg_out "$line\n"; } else{ print $irreg_out "$line\n"; } } close $irreg_out; close $reg_out; __DATA__ 10002TU AGACATTACCTGTGAGACACCTTTC GCCTCCACCTCAGAGTCAG TCCATGGG +AAGGATCTCCGTGAAATCA 10002TU-2 GCTCCAGCTAGAAGAGAATCC CCCACCAGGGCTGTGTAAG CCTGTGAGA +TAGTACAGCTGAAGAGTTGGC 10002TD TGTGTTGATTCTCAGCCTCTTG GACGGAGCACATAGGCAAAG TCTGTTCTT +CTCAGCTGTCTTTGTTGCTGC 10003TU CAGCAAGCCCTGAGGTGTG CAGTGAACTGAGAAAGACGAGAGG TGCAAGTCCAG +ATGGAGGCCACC 10174TU-2 ACCTGAACAGCCTGACATGAAC TGGGATGGAGGGCAAAGTC CCACCTAGT +ATGACCCAGCACACCTCC

Replies are listed 'Best First'.
Re^2: separate data and print to two files
by graff (Chancellor) on Jul 08, 2009 at 19:47 UTC
    ... 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