in reply to Re: =~ matches non-existent symbols
in thread =~ matches non-existent symbols

Apart from what Laurent_R mentioned, this latest version won't tell you anything about what sort of unexpected stuff is showing up in the data (my version will do that). Maybe that's not important to you in this particular process, but when I have to work with defective or unreliable input, I find that it's very helpful to be able to see what's wrong with the data.

BTW, in case my last reply wasn't clear, here's what I was talking about:

#!/usr/bin/perl use strict; use warnings; $/ = undef; # slurp-mode for input, just in case while ( <> ) { # reads stdin or all file names in ARGV s/\s+//g; # remove whitespace my $content = $_; # keep a working copy tr/ACGTacgt//d; # remove all acgt if ( length() ) { # anything left? print "$ARGV bad content: $_\n"; do_something_with_bad_data( $ARGV, $content ); } else { print "$ARGV all clean!\n"; do_something_with_good_data( $ARGV, $content ); } } sub do_something_with_bad_data { my ( $filename, $data ) = @_; # . . . fix it? report it to someone? } sub do_something_with_good_data { my ( $filename, $data ) = @_; # . . . whatever you want to do }