Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: Compare three columns of one file with three columns of another file in perl

by NetWallah (Canon)
on May 26, 2015 at 01:07 UTC ( [id://1127734]=note: print w/replies, xml ) Need Help??


in reply to Compare three columns of one file with three columns of another file in perl

Here is some code to show you perl idioms on how to approach this problem.
#!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 will need to understand "array slices", and references.

        "You're only given one little spark of madness. You mustn't lose it."         - Robin Williams

  • Comment on Re: Compare three columns of one file with three columns of another file in perl
  • Download Code

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

    Thanks but it does not print any output

      This line in my code has a typo .. should be corrected to meet your reaquirements :
      $_->[3] eq $two[4] # should be: $_->[2] eq $two[4]
      The code was intended as a style and structure guide, not necessarily a complete solution.

              "You're only given one little spark of madness. You mustn't lose it."         - Robin Williams

        Thanks but it prints nothing to the standard output

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1127734]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (6)
As of 2024-04-23 07:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found