我有Perl代碼來生成一個已存儲在兩個單獨的.txt
文件,我想執行測試我的模塊時,但我似乎無法將它們讀入測試。無法讀取文件到perl模塊測試?
我已經使用內置的文件閱讀器嘗試:open FILE, 'file.txt'
,
storable
:retrieve('file')
其中file
是一個可存儲文件
和File::Slurp
:read_file('file.txt')
。
這些工作都不在測試文件(.t
格式)中,但它們在同一目錄中的正常.pl
文件中工作。我如何使它在測試中工作?我會用__DATA__
的選擇,但我有兩個文件,而且它們已經在哈希格式,所以正好可以直讀
編輯:我的代碼 -
use Data::Dumper;
use File::Slurp;
my $table1 = read_file('tab1.txt');
my $table2 = read_file('tab2.txt');
print Dumper($table1);
print Dumper($table2);
我在測試文件輸出:
$VAR1 = '';
$VAR1 = '';
,並在test.pl
文件$VAR1
和$VAR2
酷似「.TXT」文件的內容,如我期望的那樣。
EDIT2:
忘記,有裏面的文件哈希值,這也不要緊,我想讀的test.txt
文件我在這一個隨機字符串製作,並與出來:
$VAR1 = 'Testing commit - part 12';
這似乎表明它正在讀取位於不同位置的文件,因此沒有找到我的文件。我試圖將該目錄作爲lib
,但沒有奏效。
「哈希」是一種數據結構,而不是文件格式。你不能有「哈希存儲在文件中」。你的文件實際上包含什麼? – ikegami 2013-04-24 08:48:53
說它在'.t'中工作,但不是'.pl'是錯誤的。你誤診了這個問題。這是別的,因爲Perl根本沒有看擴展。 '.pl','.pm','.t','.foo'或者根本沒有擴展名都與Perl相同。 – ikegami 2013-04-24 08:51:47
我只說我看到的...在每個文件中我有一個散列寫在預期的方式,你會寫一個哈希''名稱'= {'key1'=>'val1'};'格式(除外它更大)。如果這有所幫助,它們就是哈希引用。當我從'test.pl'文件中的read_in打印時,我得到的散列是輸出的,但是當我在'test.t'文件中嘗試相同的代碼時,我得到''''。 – dgBP 2013-04-24 08:56:00