in reply to Re^4: Counting matches
in thread Counting matches

There is absolutely nothing preventing you from expanding the @hant and @counts arrays. Why do you suppose I set them up as arrays in the first place even though you had only given us one data point in your sample?

Replies are listed 'Best First'.
Re^6: Counting matches
by Nicpetbio23! (Acolyte) on May 29, 2017 at 17:07 UTC
    #!/usr/bin/env perl use strict; use warnings; use Test::More; use File::Slurp; #Counter.pl open my $handle, '<', "/home/nic/Desktop/5-27-17/Genomes_used_HANT.txt +"; chomp(my @HANT = <$handle>); close $handle; my @counts = (0,1,2,3,4,5,6,7,8,9,10); plan tests => scalar @hant; my $nrt2 = read_file("/home/nic/Desktop/5-27-17/NRT2.txt"); for my $hant (@HANT) { my $matches = () = my $nrt2 =~ /$hant/g; is ($matches, shift @counts, "Number of matches found for $hant"); }
    Ok, I tried this script and got the following error. "You said to perform 0 tests at Counter.pl line 13". What should I change? Sorry like I said I am new at writing perl scripts. My script might not make sense.lol

      This:

      chomp(my @HANT = <$handle>); ... plan tests => scalar @hant;

      Perl is case sensitive, unless otherwise stated for details. @HANT and @hant are different arrays.

      perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'
        #!/usr/bin/env perl use strict; use warnings; use Test::More; use File::Slurp; #Counter.pl open my $handle, '<', "/home/nic/Desktop/5-27-17/Genomes_used_HANT.txt +"; chomp(my @HANT = <$handle>); close $handle; my @counts = (0,1,2,3,4,5,6,7,8,9,10); plan tests => scalar @HANT; my $nrt2 = read_file("/home/nic/Desktop/5-27-17/NRT2.txt"); for my $hant (@HANT) { my $matches = () = $nrt2 =~ /$hant/g; is ($matches, shift @counts, "Number of matches found for $hant"); }
        Ok this works now and correctly returns count. The only problem is that it returns errors and extra junk as well. How do I get rid of it? Why does it show expected values?
        nic@nic-VirtualBox:~/Desktop/5-27-17$ perl Counter.pl 1..612 ok 1 - Number of matches found for Laesu1 ok 2 - Number of matches found for Patat1 not ok 3 - Number of matches found for Hydru2 # Failed test 'Number of matches found for Hydru2' # at Counter.pl line 18. # got: '1' # expected: '2' not ok 4 - Number of matches found for Armost1 # Failed test 'Number of matches found for Armost1' # at Counter.pl line 18. # got: '0' # expected: '3' not ok 5 - Number of matches found for Pacta12 # Failed test 'Number of matches found for Pacta12' # at Counter.pl line 18. # got: '1' # expected: '4'
        I just want this for example.
        Number of matches found for Pacta12: 1 Number of matches found for Armost1: 0