Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re^5: Comparision Utility PERL

by poj (Monsignor)
on Feb 09, 2018 at 12:37 UTC ( #1208819=note: print w/replies, xml ) Need Help??


in reply to Re^4: Comparision Utility PERL
in thread Comparision Utility PERL

The [1] in line 12 of Marshall's post refers to the second column in file1 that you want to extract into the hash keys. The first column would be [0]

 my $col2 = (split /\|/, $_)[1];

perhaps this is easier to understand

#!/usr/bin/perl use strict; use warnings; use Data::Dumper; #@ARGV = ('file1.txt','file2.txt','file3.txt',2,3); my ($file1, $file2, $file3, $file1col,$file2col) = @ARGV; my %hash = (); open my $fh1,'<', $file1 or die "Could not open for read $file1 : $!"; while ( my $row = <$fh1> ) { chomp $row; next if $row =~ /^\s*$/; # extract the selected column only my @fields = split /\|/, $row ; my $key = $fields[$file1col-1]; $key =~ s/^\s+|\s+$//g;# trim spaces $hash{$key} = 1; } close $fh1; print Dumper \%hash; open my $fh2,'<', $file2 or die "Could not open for read $file2 : $!"; open my $fh3,'>', $file3 or die "Could not open for write $file3 : $!"; while ( my $row = <$fh2> ) { chomp $row; next if $row =~ /^\s*$/g; # extract the selected column only my @fields = split /\|/, $row ; my $key = $fields[$file2col-1]; $key =~ s/^\s+|\s+$//;# trim spaces if ( exists $hash{$key} ) { print "$row\n"; } } close $fh2; close $fh3;
poj

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1208819]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (3)
As of 2018-02-25 04:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    When it is dark outside I am happiest to see ...














    Results (312 votes). Check out past polls.

    Notices?