in reply to Re^3: part - split up files according to column value
in thread part - split up files according to column value
The problem is the filecache. I am not familiar with perl so I am having problems with this part of code. I am getting error $ perl split.pl Input.csv .cvs Error opening '4444.cvs' for write - Too many open files at split.pl 39, <> line 817961. I have marked the my addition to jdporter's code I don't know $path and $mode are.///My code use FileCache maxOpen => 1000; //////////// # config: my $field = 0; my $sep = ","; ////MY code cacheout $mode, $path; $fh = cacheout $mode, $path; ///////// $, = $sep; $\ = $/; my %file; # { num, name, $fh } my $fnum = 1; while (<>) { chomp; my @c = split /$sep/o; my( $key, $num ) = defined $c[$field] ? ( $c[$field], $fnum++ ) : ( '(column not present)', 0 ); unless ( $file{$key}) { $nameF = $c[$field]; $nameF =~ s/"//g; $file{$key}{num} = $num; $file{$key}{name} = "out/".$nameF.$ARGV[0]; if(($file{$key}{num}) >1){ -f $file{$key}{name} and die "Sorry, '$file{$key}{name}' exists; won't clobber."; open $file{$key}{fh}, ">", $file{$key}{name} or die "Error opening '$file{$key}{name}' for write - $!"; }} print {$file{$key}{fh}} @c; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: part - split up files according to column value
by Corion (Patriarch) on Aug 26, 2008 at 14:46 UTC | |
|
Re^5: part - split up files according to column value
by mick2020 (Novice) on Aug 26, 2008 at 15:45 UTC | |
by Corion (Patriarch) on Aug 26, 2008 at 15:49 UTC | |
by Anonymous Monk on Aug 27, 2008 at 09:12 UTC |