use warnings; use strict; my $usage = <<"EOT"; usage: perl $0 dna_datafile.name EOT die $usage unless @ARGV >= 1; my $filename = $ARGV[0]; my $rx_dna = qr{ \b [ATCGatcg]+ \b }xms; open my $filehandle, '<', $filename or die "opening '$filename': $!"; SEQ: while (my $seq = <$filehandle>) { next SEQ unless my ($dna) = $seq =~ m{ \A ($rx_dna) \s* \z }xms; (my $revcom = reverse $dna) =~ tr/ACGTacgt/TGCAtgca/; print "dna -> reverse complement \n"; print "'$dna' -> '$revcom' \n\n"; } close $filehandle or die "closing '$filename': $!"; exit; # define any subroutines here #########################################