http://www.perlmonks.org?node_id=850466

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 ";"

eg.Table;M Data;O ......
The ouput file must be made as this structure:
%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)', }, );
here what i did:
#!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