reez has asked for the wisdom of the Perl Monks concerning the following question:
Hello Perl Monks,
What am i trying to do is extract data from directory of CSV files, in which columns are separated with ";"
The ouput file must be made as this structure:eg.Table;M Data;O ......
here what i did:%hMFD = ( Name_of_the_file_without_ext => { Fieldname_1(column A) => 'value M or O(column B)', Fieldname_2(column A) => 'value M or O(column B)', . . . Fieldname_x(column A) => 'value M or O(column B)', }, Name_of_the_next_file_without_ext => { Fieldname_1(column A) => 'value M or O(column B)', Fieldname_2(column A) => 'value M or O(column B)', . . . Fieldname_x(column A) => 'value M or O(column B)', }, );
#!c:\perl\ -w use Text::CSV; opendir(KAT, "$ARGV[0]"); @fls=grep {/\.csv$/} readdir KAT; closedir KAT; foreach $fl(@fls) { $fl=~s/\..*//; print "$fl\n"; } @files=<C:\\experl\\csv\\*.csv>; foreach $file (@files){ print "$file\n"; } foreach $file (@files){ my $csv = Text::CSV->new(); open (CSV, "<", $file) or die $!; while (<CSV>) { if ($csv->parse($_)) { my @columns = $csv->fields(); print "@columns\n"; } else { my $err = $csv->error_input; print "Failed to parse line: $err"; } } close CSV; }
still it is only making list of files as an array, and reads all data without separating them, i have no clue how to combine this into hash of hashes, i would be grateful for some advice, this task is to hard for me at this point
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: extracting data from CSV files and making hash of hashes
by toolic (Bishop) on Jul 20, 2010 at 18:54 UTC | |
by reez (Novice) on Jul 21, 2010 at 11:07 UTC | |
by toolic (Bishop) on Jul 21, 2010 at 12:59 UTC | |
Re: extracting data from CSV files and making hash of hashes
by intel (Beadle) on Jul 20, 2010 at 19:03 UTC |
Back to
Seekers of Perl Wisdom