use*_*033 2 perl glob filehandle
好的,我在这里有点问题.我意识到我不需要为*:: HTML设置一个$ handle来使这个代码片段起作用,但是这个代码从它的使用中脱离了上下文,我确实需要这个来处理$ handle.我收到的输出在片段下面,但我想要的输出是file.html包含"what \nsometext1 \nsometext2 \n".
open(HTML, ">file.html");
$handle = \*::HTML;
print $handle "what\n";
open(READ, "< somefile.txt"); #somefile.txt contains sometext1\nsometext2\n
while(<READ>)
{
print $handle;
}
close READ;
close HTML;
Run Code Online (Sandbox Code Playgroud)
file.html保留输出"what",GLOB(0x6278b0)GLOB(0x6278b0)打印到终端窗口.
当您使用标量变量来保存文件句柄时,您必须帮助Perl了解如何解析表达式.说话print $var含糊不清.它可能意味着以下任何一种情况:
print STDOUT $var; # print the contents of $var to STDOUT
print {$var} $_; # print the contents of $_ to the handle $var
Run Code Online (Sandbox Code Playgroud)
Perl选择了前者.如果你想要后者,你需要通过将文件句柄括起来消除歧义来明确它.
此外,$_当您不为要打印的内容提供任何参数时,Perl仅使用默认变量.因为如何print $var解释,$_不使用.
| 归档时间: |
|
| 查看次数: |
9201 次 |
| 最近记录: |