""Ralph H. Stoos Jr."" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > All, > > I have been asked to do something in Access or Excel which I find > disagreeable. Open Source is the way to go and also, PERL is more > flexible. I might even obtain a little professional development on this. > > My last post seemed to confuse folks (thanks to all who responded). I > will try to clarify. > <snip data> > > OK, so here is the task. The first row I want to turn into variable > names. Machine, PurgeSuccess, etc. Then with that removed the real work > happens. The script would then request which variables I would like to > sort on or find records (rows) that contain the "matches" specified. >
Ralph, The other suggestions are correct, you want this data in a rdbms. But perl has modules that treat csv files as a database: $ cat driver.pl use warnings; use strict; use DBD::CSV; my $dbh = DBI->connect("DBI:CSV:f_dir=./shop;csv_eol=\n;"); my $sql = 'select * from machines'; my $sth = $dbh->prepare( $sql ); $sth->execute; while ( my $row = $sth->fetchrow_hashref ) { print( "$row->{Machine}: $row->{NameJobCfg}\n"); } using your data, I get this: $ perl driver.pl 1125785731: _SFM20_IOT7_SFM7_BFM20_BFM2 1125785731: _SFM20_IOT7_SFM7_BFM20_BFM2 In other words, do NOT write a parser for the file. Your client will loose interest long before you get it right. Its a wheel that has already been invented. DBD::CSV (a la SQL::Statement) allows arbitrairily complex WHERE and ORDER BY clauses for filtering and sorting. Here is how to set up the directory structure for the above program: $ ls -l total 8 -rw-rw-r-- 1 trwww trwww 285 Jun 23 12:26 driver.pl drwxrwxr-x 2 trwww trwww 4096 Jun 23 12:12 shop $ ls -l shop total 4 -rw-rw-r-- 1 trwww trwww 741 Jun 23 12:04 machines driver.pl is the program above. The file shop/machines is your csv file. Todd W. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>