【发布时间】:2023-03-13 16:12:01
【问题描述】:
我是 Perl 新手,从头开始学习。我读过$$ 返回
运行此脚本的 Perl 进程的 pid。
按照下面的链接,
http://www.tutorialspoint.com/perl/perl_special_variables.htm
我有以下在 Windows 机器上执行的 Perl 脚本,
sub test
{
my ($surrogate_name) = @_;
if((defined $surrogate_name) && ($surrogate_name == 1))
{
print "Done!"."\n";
}
return $surrogate_name;
}
sub t
{
my ($surrogate_name) = @_;
my $record;
my $surrogate_value;
$record = &test($surrogate_name);
print $record."\n";
if ($record)
{
print "B"."\n";
$surrogate_value = $$record{$surrogate_name};
}
print $surrogate_value."\n";
print "A"."\n";
return $surrogate_value;
}
&t(1);
在这段代码中,我观察到除了$surrogate_value 的值之外的所有内容都被打印出来了。
请澄清$$ 的实际含义以及为什么它没有在我的脚本中返回任何内容。
提前谢谢...
【问题讨论】:
-
总是
use strict和warnings。看起来这里的$$要么是错字,要么是标量取消引用。 -
您正在阅读哪个教程告诉您使用与符号
&调用子例程,如&test($surrogate_name)?不管是什么,你都应该停止阅读它,因为它已经过时了大约二十年!只是test($surrogate_name)是正确的。 -
请不要使用来自tutorialspoint.com的教程。他们很可怕。最好看看learn.perl.org 和Perl Tutorial Hub。
标签: perl