http://qs321.pair.com?node_id=11113040


in reply to Re: Find element in array
in thread Find element in array

my $count = $nucleotideDNA =~ tr/ATCG]//c;  # Remove and count invalids

Sofie:   Note that while this  tr/// (see Quote-Like Operators in perlop) expression counts the number of characters that are not ATCG, it does not remove anything; the string is not changed (update: nor is there any need for change):

c:\@Work\Perl\monks>perl -wMstrict -le "my $DNA = 'ATATCCCGATCAGG3TT!GCA'; ;; my $nucleotideDNA = $DNA; my $count = $nucleotideDNA =~ tr/ATCG//c; ;; print $DNA; print $nucleotideDNA; ;; print 'sequences are equal' if $DNA eq $nucleotideDNA; " ATATCCCGATCAGG3TT!GCA ATATCCCGATCAGG3TT!GCA sequences are equal
Also note that there is a  ] character in the set |  tr/// search set that should not be there.

However, I agree with the main point that BillKSmith is making: string operations with regexes or with operators like substr and index will tend to be significantly faster (update: and to consume significantly less memory) than equivalent array operations.


Give a man a fish:  <%-{-{-{-<