我有以下代碼:無限循環通過FTP讀取文件用Perl
use strict;
use warnings;
use Net::FTP;
my $counter;
my $ftp = Net::FTP->new("ftp.metagenomics.anl.gov", Debug => 0)
or die "Cannot connect.\n";
$ftp->login() or die "Login problems.\n";
$ftp->cwd("/projects") or die "Cannot change directory.\n";
for my $directory ($ftp->ls) {
$ftp->cwd($directory);
my ($remote_file_content, $remote_file_handle);
open($remote_file_handle, ">", \$remote_file_content);
$ftp->get("metadata.project-" . $directory . ".json", $remote_file_handle)
or die "Get failed.\n";
while (my $line = $remote_file_content) {
$counter++;
if ($line =~ /"biome":{"unit":"","required":"1","value":"([A-Za-z0-9_\-. ]*)",/) {
print $counter. "\t" . $directory . "\t" . $1 . "\n";
}
}
close $remote_file_content;
$ftp->cwd("..");
}
然而,第一個文件被讀一遍又一遍......它就像一個無限循環,我不知道爲什麼它永遠不會完成讀取同一個文件。你有什麼主意嗎?
您是否嘗試過註釋某些代碼行以查看問題所在?如果您發現哪條線路導致問題,您是否做過任何閱讀以查看**爲什麼**可能導致無限循環? – 2014-09-25 10:50:02
跟蹤您的各種文件名,從'ls'打印出列表,打開哪個目錄等。 – TLP 2014-09-25 10:52:01