我有一个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})