Я знаю, что передача скаляра в подпрограмму на самом деле передает ссылку, но поскольку я новичок в perl, я все же провел следующий тест:
#!/usr/bin/perl
$i = 2;
subr(\$i);
sub subr{
print $_[0]."\n";
print $$_[0]."\n";
}
Я думал, что первая строка будет печатать адрес и вторая строка вернет номер, но вторая строка будет пустой. Кто-то другой указал мне сделать это: $ {$ _ [0]}
, и он напечатает число. Но она не знала, почему без {} он не работает и почему работает с {}. Так что же произошло?