如何从 hashref 中的文件句柄中读取一行
How to read a line from a filehandle in a hashref
我在 hashref 中有一个套接字句柄:$self->{socket}
.
我想使用 $line = <$self->{socket}>
读取它,但出现语法错误。
现在,我知道了
print {$self->{socket}} "Hello";
将负责打印,但是
$line = < {$self->{socket}} >;
无效。
如何做到这一点而不像这样弄乱我的代码:
$fh = $self->{socket};
$line = < $fh >;
谢谢。
尝试使用 readline
,如 http://www.perlmonks.org/?node_id=776168 所述,它仍然分配给 $_
并检查它是否已定义。
$ perl -MO=Deparse -e'while (readline($fh)) {}'
while (defined($_ = <$fh>)) {
();
}
-e syntax OK
<fh>
是 readline(fh)
的缩写
<$fh>
是 readline($fh)
的缩写
<...>
是 glob(qq<...>)
的缩写
快捷方式不行,所以使用长格式。
readline($self->{socket})
我在 hashref 中有一个套接字句柄:$self->{socket}
.
我想使用 $line = <$self->{socket}>
读取它,但出现语法错误。
现在,我知道了
print {$self->{socket}} "Hello";
将负责打印,但是
$line = < {$self->{socket}} >;
无效。
如何做到这一点而不像这样弄乱我的代码:
$fh = $self->{socket};
$line = < $fh >;
谢谢。
尝试使用 readline
,如 http://www.perlmonks.org/?node_id=776168 所述,它仍然分配给 $_
并检查它是否已定义。
$ perl -MO=Deparse -e'while (readline($fh)) {}'
while (defined($_ = <$fh>)) {
();
}
-e syntax OK
<fh>
是readline(fh)
的缩写
<$fh>
是readline($fh)
的缩写
<...>
是glob(qq<...>)
的缩写
快捷方式不行,所以使用长格式。
readline($self->{socket})