gpt4 book ai didi

Perl - 翻译变量的子程序

转载 作者:行者123 更新时间:2023-12-01 22:33:05 24 4
gpt4 key购买 nike

我写了下面的子程序:

sub MakeNan {
my $n = $_;
if ( $n !~ /^Positive|^Negative/ ) {
return "N/A";
}
else { return "$n"; }
}

我一直在以下上下文中调用它:

open ( FILE, $file);
while (<FILE>) {
chomp;
my @a = split("\t", $_);
my $hr = $a[55];
$hr = &MakeNan($hr);
print "$hr\n";
}
close FILE;

不幸的是,尽管事实上有许多值实例应该返回“正...”或“负...”,但它会为每个给定的值返回“N/A”

我不明白让子例程每次都返回“N/A”我做错了什么。

最佳答案

有几个错误。 $n 不包含您的参数,因为默认变量不是您的参数。你的正则表达式是错误的。改为这样做:

sub make_nan {
my ($n) = @_; # or: my $n = shift;
return $n =~ /^(Positive|Negative)/ ? $n : 'N/A';
}

并在调用您的函数时删除 &

但是,您不需要子例程,因为您只需要一个三元运算符。

关于Perl - 翻译变量的子程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28617286/

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