无法在 Perl 脚本中打开文件

时间:2021-02-24 16:29:13

标签: perl

我想使用 Perl 将 CSV 文件转换为 XML。 程序无法读取输入文件。消息:“无法打开文件:testfile.csv” 有谁知道这个脚本有什么问题?转换部分不是问题


my $target_file;
my $source_file;

print "Agent csv2xml.pl wordt gestart...\n";


opendir( D, "$source_dir" ) or mail_die("Fout bij openen van $source_dir : $!");
my @files = grep { -f "$source_dir/$_" } readdir D;
closedir D;
foreach my $file_name (@files)
{
    
  open my $CSV_FILE, "<", "$file_name" or mail_die("Cannot open a file: $file_name ");
  open my $XML_FILE, ">", "$target_file" or mail_die("Cannot open a file: $file_name ");

  print $target_file '<?xml version="1.0" encoding="UTF-8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://www.co-maker.nl/LeaseOffice/types">'."\n";

  my $kenteken = "";
  my $csv_header = <$CSV_FILE>;

while(<$CSV_FILE>) {
    chomp; 
    my @fields = split ',', $_;
 
    
    $kenteken = '<ns1:ObjectMileage><ns1:object_code>'.$fields[0].'</ns1:object_code><ns1:mileagedate>'.$fields[1].'</ns1:mileagedate><ns1:mileage>'.$fields[2].'</ns1:mileage><ns1:icode_mileagecause_ecode>'.$fields[3].'</ns1:icode_mileagecause_ecode></ns1:ObjectMileage>'."\n";  

   print $target_file $kenteken;
}
close $file_name;
close $target_file;

# Na succesvolle unzip het input bestand verwijderen.
    unlink("$file_name") or mail_die("Kan bestand $file_name niet verwijderen. \n");
}

0 个答案:

没有答案