我正在嘗試爲perl文件上傳腳本編寫一些單元測試。我對perl仍然很陌生,所以我有一些問題可以實現我期望從我的代碼中獲得的結果。在perl和STDERR內容中打開文件問題
基本上我的思維過程是,我可以請求將告訴腳本只獲取的文件已經在系統上,而不是嘗試使用上傳的文件一起傳遞test_only屬性。
我創建了一個測試文件,並把它放在我的輸出/ tmp目錄。我確保將它的權限設置爲775.它只是一個簡單的.txt文件,它說「我是測試文件」。
我期望當前發生的是,當我運行我的測試腳本時,我應該看到文件的內容打印到錯誤日誌以及一些對緩衝區的引用(所以我可以驗證文件正在打開正確)。但是,這不會發生,錯誤日誌中沒有任何內容。我想知道文件是否正確打開?
我敢肯定,我只是失去了一些東西有關如何perl的打開文件的基礎。任何幫助將不勝感激。謝謝:)
這是我的代碼的相應片段:
my $test_only = 1;
my $tmp_uploads_path = "/home/my_instance/output/tmp/";
if($test_only)
{
#put simulated file handle and file name here
$file = "";
$file_name = "test_file.txt";
}
else
{
$file = $q->upload('file')
|| die "No file data sent\n $!";
$file_name = $q->param('file_name')
|| die "No file_name sent\n $!";
}
########
#SAVE THE UPLOAD
########
my $bufsize = 1024;
my $buffer = '';
open(my $TMPFILE, ">".$tmp_uploads_path.$file_name);
binmode $TMPFILE;
print STDERR "=> ".Dumper($TMPFILE)."\n";
while(read ($TMPFILE, $buffer, $bufsize)){
print STDERR "=> ".Dumper($TMPFILE)."\n";
print STDERR "=> ".Dumper($buffer)."\n";
print $TMPFILE $buffer;
}
close($TMPFILE);
感謝您的幫助。這個答案讓我在那裏。我實際上正在爲這個代碼編寫一個新API的測試,所以我並不感到驚訝的是有一些舊標準被使用。 – Rooster