我正在寻找别人的代码,他们打开一个文件:
(open (FILEHANDLE,'/homedirectory/textfile.txt'))
Run Code Online (Sandbox Code Playgroud)
然后,他们将每行的内容放入一个变量进行处理(文件的每一行都包含由制表符分隔的数据):
while(<FILEHANDLE>) {
($var1, $var2, $var3, $var4) = split (/\t+/, $_);
Run Code Online (Sandbox Code Playgroud)
然后他做了类似的事情:
$index = join('_', $var1, $var2, $var3);
Run Code Online (Sandbox Code Playgroud)
然后做这个(我划伤脑袋的部分)
$contents = $filehandle{"$index"};
Run Code Online (Sandbox Code Playgroud)
我尝试打印出来$contents,它看起来像是值$var1,$var2并且$var3全部用分号分隔(例如" value1;value2;value3").另外,我更改了FILEHANDLEto 的名称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, …Run Code Online (Sandbox Code Playgroud)