如何从hashref中的文件句柄中读取一行

Vic*_*c K 2 perl href filehandle

我有一个hashref中的套接字句柄: $self->{socket}.
我想从中读取它$line = <$self->{socket}>,但是我收到了语法错误.

现在,我知道

print {$self->{socket}} "Hello";
Run Code Online (Sandbox Code Playgroud)

会照顾印刷,但是

$line = < {$self->{socket}} >;
Run Code Online (Sandbox Code Playgroud)

不行.

如何在不使我的代码混乱的情况下执行此操作:

$fh = $self->{socket};
$line = < $fh >;
Run Code Online (Sandbox Code Playgroud)

谢谢.

Nic*_*k P 5

尝试使用readline,如http://www.perlmonks.org/?node_id=776168所述,它仍然分配$_并检查它是否已定义.

$ perl -MO=Deparse -e'while (readline($fh)) {}'
while (defined($_ = <$fh>)) {
    ();
}
-e syntax OK
Run Code Online (Sandbox Code Playgroud)