- 论坛徽章:
- 0
|
比如说我已经建好了一个哈西,
我需要以字段为键值,修改每一行,然后再输出,
问题是每一个文件的字段不一样,那我需要怎样引用呢?我如下写有什么错误啊!
求高手指点。
以下是我写:
my $csvDir = $ARGV[0];
my @srcFiles = ();
find sub {push @srcFiles,$File::Find::name if -f $_ && /\.csv$/i},$csvDir;
foreach my $csvFile (@srcFiles){
proccess ($csvFile);
print "正处理csv文件。。。。";
}
sub process {
my ($csvFile) = @_;
my @lines =loadContainTitle($csvFile);
foreach my $line (@lines){
open RR,">$csvFile";
my @fields = split (/,/,$line);
my $index = findnewindex($line);
my $colume = $fields[$index];
if ($fields[$index] eq " 名称"){
$colume =~ s/`//g;
$colume =~ tr/[A-Z]/[a-z]/;
}
if ($fields[$index] eq " 地址"){
$colume =~ s/\n//g;
}
push @fields,$colume . ",";
print RR @fields;
}
}
sub findnewindex {
my ($line) = @_;
my %name2indexnumber = ();
my $lines = readFirstLine($line);
my @fields = split (/,/,$lines);
my $lenth = @fields;
for (my $i=0 ; $i<$lenth; $i++){
$name2indexnumber{$fields[$i]}= $i;
}
} |
|