我的perl腳本有點問題。我試圖將HTML文件的內容轉換爲CSV。這部分不是問題。我正在爲2個HTML文件做同樣的事情,並期待2個CSV文件。除了1件事外,一切都很好。第一個CSV文件非常好,但第二個CSV文件包含第一個PLUS文本的第二個文本....我粘貼了我的腳本並刪除了數據提取和HTML下載的行。所以下面的其餘部分是純文件處理...我在這裏失蹤什麼?文件關閉不起作用
#!/usr/bin/perl
..
my $saveFileName = "x";
my $saveCsvName = "x";
sub parse_page{
open(CSV, ">".$saveCsvName);
my $tree = HTML::TreeBuilder->new();
$tree->parse_file($saveFileName);
my @adds = $tree->look_down(sub { lc($_[0]->attr('class')) eq 'ad_row' });
foreach $add(@adds){ print CSV $stuff."\n"; } #do stuff and print
$tree->delete;
close(CSV);
}
# Main -----------------------------------------------------
$saveFileName = "A_".$vandaag.".html";
$saveCsvName = "A_".$vandaag.".csv";
parse_page();
$saveFileName = "B_".$vandaag.".html";
$saveCsvName = "B_".$vandaag.".csv";
parse_page();
你在該程序中使用'嚴格'和'使用警告'嗎?我想你不會。在頂部添加這兩個,然後修復它們會給你的所有錯誤(比如'foreach'中的未聲明'$ add'),然後用更新後的程序編輯你的問題。 – simbabque
如果您無法確定您的字段數據中不會存在字段或行分隔符,請使用[Text :: CSV_XS](http://search.cpan.org/perldoc/Text::CSV_XS)編寫CSV數據。 – reinierpost
我刪除了雙引號,因爲它與我的問題無關。此外,CSV文件的內容也非常好。唯一的問題是第二個文件也有第一個文件的內容... – hetOrakel