gpt4 book ai didi

Perl:修改作为参数传递给子程序的变量

转载 作者:行者123 更新时间:2023-12-01 09:25:03 24 4
gpt4 key购买 nike

我需要在例程中修改一个变量,以便在离开例程后保留更改。下面是一个例子:

$text = "hello";
&convert_to_uppercase($text);
print $text;
我想在屏幕上看到“你好”,而不是“你好”。
例程是:
sub convert_to_uppercase($text){
<something like $text = uc($text);>
}
我知道如何在 PHP 中执行此操作,但似乎参数没有以相同的方式更改。而且,我到处寻找,但找不到具体的答案。

最佳答案

你真的不应该使用 & 符号 &调用 Perl 子程序时。仅在将代码视为数据项时才需要,例如在获取引用时,如 \&convert_to_uppercase .从 Perl 5 的第 4 版开始,就没有必要在调用中使用它了,它会做一些你可能不想要的神秘事情。
子程序修改其参数是不常见的,但 @_ 的元素是实际参数的别名,因此您可以通过修改该数组来执行您的要求。
如果你这样写你的子程序

sub convert_to_uppercase {
$_[0] = uc $_[0];
}
然后它会按照你的要求做。但通常最好返回修改后的值,以便调用代码可以决定是否覆盖原始值。例如,如果我有
sub upper_case {
uc shift;
}
那么它可以被称为
my $text = "hello"; 
$text = upper_case($text);
print $text;
根据您的需要进行操作,并修改 $text ;或作为
my $text = "hello";
print upper_case($text);
离开 $text不变,但返回更改后的值。

关于Perl:修改作为参数传递给子程序的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26414835/

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