gpt4 book ai didi

perl(良好实践): lexical filehandle for socket

转载 作者:行者123 更新时间:2023-12-04 10:42:09 26 4
gpt4 key购买 nike

在 perdoc Socket页,他们使用全局文件句柄作为套接字。
但是如果我在子进程调用的子例程中创建一个套接字,使用词法文件句柄仍然使用 Socket 是否更好?
像这样:

use strict;
use Socket;
sub sendData
{
my $proto = getprotobyname('tcp');
my $socket;
socket($socket, PF_INET, SOCK_STREAM, $proto);
...
close($socket)
}
代替:
sub sendData
{
my $proto = getprotobyname('tcp');
socket(SOCKET, PF_INET, SOCK_STREAM, $proto);
...
close(SOCKET)
}
似乎还可以,但我不知道这是更好的做法还是完全没用...
谢谢

最佳答案

是的,使用词法文件句柄是更好的做法。但是 Perl 5.0 没有它们,所以有很多使用全局文件句柄的旧代码和文档,其中大部分还没有更新为使用词法句柄。

附言你知道你可以说

socket(my $socket, PF_INET, SOCK_STREAM, $proto);

而不是把 my在上一行,对吗?

关于perl(良好实践): lexical filehandle for socket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10513523/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com