use strict; my %sequences; while () { chomp; $sequences{$_} = $.; } for my $seq (keys %sequences) { my $rev_compl = get_rev_compl($seq); print "$seq matches $rev_compl on line $sequences{$rev_compl}\n" if exists $sequences{$rev_compl}; } sub get_rev_compl { my ($seq) = @_; $seq =~ tr/GCAT/CGTA/; return reverse $seq; } 1; __DATA__ GATTACA TTAGCAA CATCATC TTGCTAA TGTAATC GATGATG