in reply to Compare three columns of one file with three columns of another file in perl
You will need to understand "array slices", and references.#!usr/bin/perl use strict; use warnings; my ($infile1 ,$infile2) = @ARGV; open (my $in1 ,"<", $infile1) or die "Cannot open '$infile1':$!\n"; open (my $in2, "<", $infile2) or die "Cannot open '$infile2':$!\n"; my @values; while ( <$in1> ){ chomp; my @one = split; next unless scalar(@one) >= 3; # Must have at least 3 push @values, [@one[0..2]]; } close $in1; while (<$in2>){ chomp; my @two = split; next unless scalar(@two) >= 5; # Must have at least 5 next unless grep { $_->[0] eq $two[0] and $_->[1] eq $two[3] and $_->[3] eq $two[4] } @values; print join("\t",@two[0,3,4]) , "\n" } close $in2;
"You're only given one little spark of madness. You mustn't lose it." - Robin Williams
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Compare three columns of one file with three columns of another file in perl
by anonym (Acolyte) on May 26, 2015 at 02:59 UTC | |
by NetWallah (Canon) on May 26, 2015 at 03:05 UTC | |
by anonym (Acolyte) on May 26, 2015 at 03:11 UTC | |
by NetWallah (Canon) on May 26, 2015 at 03:25 UTC | |
by anonym (Acolyte) on May 26, 2015 at 03:37 UTC | |
|