我期待在別人的代碼,並且它們打開一個文件作爲例如:如何在Perl中跟蹤全局變量?
(open (FILEHANDLE,'/homedirectory/textfile.txt'))
它們然後把每行的內容到一個變量進行處理(該文件的每一行包括由分離的數據的選項卡):
while(<FILEHANDLE>) {
($var1, $var2, $var3, $var4) = split (/\t+/, $_);
然後他做一樣的東西:
$index = join('_', $var1, $var2, $var3);
,然後做到這一點(在那裏我抓我的頭的部分)
$contents = $filehandle{"$index"};
我嘗試打印出$contents
,看上去就像是的$var1
,$var2
和$var3
所有由分號分隔的值(例如「value1;value2;value3
」)。此外,我將FILEHANDLE
的名稱更改爲FILEHANDLE2
,對$filehandle
也做了同樣的處理,我得到了完全相同的結果,所以這讓我相信它們是相關的。另外,當單獨離開FILEHANDLE
並將$filehandle
更改爲$filehandle2
時,沒有任何顯示。任何幫助將不勝感激,因爲我已經停留了很長一段時間。另外,我是perl n00b ...(我主要用Python編程)。
按要求,這裏是代碼的更完整的版本:
sub myfn{
$filename = "home/textfile.txt";
open(FILEHANDLE, $filename) || die "Can't find filename\n";
while (<FILEHANDLE>) {
($var1, $var2, $var3) = split (/\t+/, $_);
$used_index = join ('_', $var1, $var2, $var3);
$tmp_index = uc ($used_index)
$contents = $filehandle{"$tmp_index"};
要清楚,$filehandle
在這個節骨眼上出現的第一次......也可能是注意到的東西用類似的名字被先前設置,但它是這樣的:
abcd_filehandle{"$randomvar} = "VALUEX;VALUEY;VALUEZ";
您是否可以發佈完整的代碼段? – FailedDev
當然,給我幾個。 – deweyredman
這看起來並不像正確的語法。你能否複製/粘貼代碼而不是鍵入它? (例如,你確定它是'$ filehandle('而不是'$ filehandle {'或'$ filehandle ['? – DVK