Perl如何修改参数

Perl如何修改参数,perl,parameter-passing,subroutine,Perl,Parameter Passing,Subroutine,SOCKET recv函数如何直接修改标量$PDU的值? 通常,这种语法是一个传递值,而不是一个传递引用,至少到目前为止我一直认为是这样 my $PDU; my $addr = $socket->recv($PDU, MAXBYTES); 我想把这个效果用于我自己的目的所以 最好是一个方便的测试子程序,它描述了如何实现这一点 比如: 正如您所知,这将导致“原始”而不是“测试” 先谢谢你 亲切问候,, 赫尔曼当你有这样的行为时,你的职能应该得到充分的记录 my $PDU="orig";

SOCKET recv函数如何直接修改标量$PDU的值? 通常,这种语法是一个传递值,而不是一个传递引用,至少到目前为止我一直认为是这样

my $PDU; 
my $addr = $socket->recv($PDU, MAXBYTES);
我想把这个效果用于我自己的目的所以 最好是一个方便的测试子程序,它描述了如何实现这一点

比如:

正如您所知,这将导致“原始”而不是“测试”

先谢谢你

亲切问候,,
赫尔曼

当你有这样的行为时,你的职能应该得到充分的记录

my $PDU="orig";
sub test {
  $_[0] = "test";
}

test($PDU);
print "$PDU\n";

输出

test
sub test {
  my ($par1) = map \$_, @_;

  $$par1 = "test";
}
test