For a user purpose it is ok, but for production it is not a good idea because it uses: "eval".
CPAN has a good module: AppConfig - AppConfig::File - search.cpan.org
In your case you can create:
1. A function where you pass: the separator, the key column in the file, and a reference to the hash.
With the code above, the result hash will be like:
Check this link: Perl Hash Howto
2. A function where you pass: the separator, the position in the first hash, the position in the second hash that you want to compare.
Inside this function you will split the values and compare based on the position given as argument. Don't forget that the split return an array with start position equals to zero.
I hope it helps. =o)
Regards.
This User Gave Thanks to felipe.vinturin For This Post:
My Friends,
Need your help to find the difference between few columns from two comma delimited files. For example, File1 and File2 has 22 columns, and I want to find the difference in first 12 columns.
I have list of file names in MyListOfFiles2Compare.txt. Data is separated with commas.... (5 Replies)
Hello all,
Could someone please let me know shell script or awk solution to compare two columns in two files? Here is the sample -
file1.txt
abc/xyz,M1234
ddd/lyg,M2345
cnn/tnt,G0123
file2.txt
A,abc/xyz,kk,dd,zz,DCT,G0123,1
A,ddd/lyg,kk,dd,zz,DCT,M1234,1... (17 Replies)
Hi all,
I would like to compare a column in one file to a column in another file and when there is a match it prints the first column and the corresponding second column. Example
File1
ABA
ABC
ABE
ABF
File 2
ABA 123
ABB 124
ABD 125
ABC 126
So what I would like printed to a file... (0 Replies)
Hello. I have two files. FILE1 was extracted from FILE2 and modified thanks to help from this post. Now I need to replace the extracted, modified lines into the original file (FILE2) to produce the FILE3.
FILE1
1466 55.27433 14.72050 -2.52E+03 3.00E-01 1.05E+04 2.57E+04
1467 55.27433... (1 Reply)
Hi
I have file 1 like this
and file 2 like this
I need to compare column 3 of both files and delete lines in file1 with same column 3 values in two files. So the output is
I tried with perl but didnt work. A perl code will be good as I am learning the language, but any other code would... (1 Reply)
Hi all, I'm pretty much a newbie to UNIX. I would appreciate any help with UNIX coding on comparing two large csv files (greater than 10 GB in size), and output a file with matching columns.
I want to compare file1 and file2 by 'id' and 'chain' columns, then extract exact matching rows'... (5 Replies)
Hi,
Below is my requirement
file1
id|cnt
1|1
2|2
3|3
file2
id_1|cnt_1
1|1
2|1
3|1
I want to compare cnt and cnt_1 columns, if they are differ then give the details
Am using below awk command, but the output is not as expected. (2 Replies)
Hi All,
I have a.dat file with content
1,338,30253395122015103,2015103,UB0085000,STMT151117055527002,,,
1,338,30253395122015103,2015103,UB0085000,STMT151117055527001,,,
and b.dat having content
1,STMT151117055527001,a1.txt,b1.txt,c1.txt
1,STMT151117055527002,a2.txt,b2.txt,c2.txt
... (13 Replies)
Discussion started by: PRAMOD 96
13 Replies
LEARN ABOUT SUSE
appconfig::args
AppConfig::Args(3) User Contributed Perl Documentation AppConfig::Args(3)NAME
AppConfig::Args - Perl5 module for reading command line arguments.
SYNOPSIS
use AppConfig::Args;
my $state = AppConfig::State->new(\%cfg);
my $cfgargs = AppConfig::Args->new($state);
$cfgargs->parse(@args); # read args
OVERVIEW
AppConfig::Args is a Perl5 module which reads command line arguments and uses the options therein to update variable values in an
AppConfig::State object.
AppConfig::File is distributed as part of the AppConfig bundle.
DESCRIPTION
USING THE AppConfig::Args MODULE
To import and use the AppConfig::Args module the following line should appear in your Perl script:
use AppConfig::Args;
AppConfig::Args is used automatically if you use the AppConfig module and create an AppConfig::Args object through the parse() method.
AppConfig::File is implemented using object-oriented methods. A new AppConfig::Args object is created and initialised using the new()
method. This returns a reference to a new AppConfig::File object. A reference to an AppConfig::State object should be passed in as the
first parameter:
my $state = AppConfig::State->new();
my $cfgargs = AppConfig::Args->new($state);
This will create and return a reference to a new AppConfig::Args object.
PARSING COMMAND LINE ARGUMENTS
The "parse()" method is used to read a list of command line arguments and update the STATE accordingly. A reference to the list of
arguments should be passed in.
$cfgargs->parse(@ARGV);
If the method is called without a reference to an argument list then it will examine and manipulate @ARGV.
If the PEDANTIC option is turned off in the AppConfig::State object, any parsing errors (invalid variables, unvalidated values, etc) will
generate warnings, but not cause the method to return. Having processed all arguments, the method will return 1 if processed without
warning or 0 if one or more warnings were raised. When the PEDANTIC option is turned on, the method generates a warning and immediately
returns a value of 0 as soon as it encounters any parsing error.
The method continues parsing arguments until it detects the first one that does not start with a leading dash, '-'. Arguments that
constitute values for other options are not examined in this way.
FUTURE DEVELOPMENT
This module was developed to provide backwards compatibility (to some degree) with the preceeding App::Config module. The argument parsing
it provides is basic but offers a quick and efficient solution for those times when simple option handling is all that is required.
If you require more flexibility in parsing command line arguments, then you should consider using the AppConfig::Getopt module. This is
loaded and used automatically by calling the AppConfig getopt() method.
The AppConfig::Getopt module provides considerably extended functionality over the AppConfig::Args module by delegating out the task of
argument parsing to Johan Vromans' Getopt::Long module. For advanced command-line parsing, this module (either Getopt::Long by itself, or
in conjunction with AppConfig::Getopt) is highly recommended.
AUTHOR
Andy Wardley, <abw@wardley.org>
COPYRIGHT
Copyright (C) 1997-2007 Andy Wardley. All Rights Reserved.
Copyright (C) 1997,1998 Canon Research Centre Europe Ltd.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
AppConfig, AppConfig::State, AppConfig::Getopt, Getopt::Long
perl v5.12.1 2007-05-30 AppConfig::Args(3)