gpt4 book ai didi

Perl 在 void 上下文中对私有(private)变量的无用使用

转载 作者:行者123 更新时间:2023-12-01 07:39:10 24 4
gpt4 key购买 nike

我看了How can I resolve this case of "Useless use of a variable in a void context"?它说使用 .连接这是我所做的,但我仍然是警告。

在/mysz/bin/heer 第 79 行的 void 上下文中无用使用私有(private)变量。

 43 sub getLog {
44 opendir(my $dh, $_[0]) || die "can't opendir $_[0]: $!";
45 my @ooolog = grep {(/^\.oooo_log/)} readdir($dh);
46 closedir $dh;
47 return $ooolog[-1];
48 }

...
79 $ooolog ? ($ooo = $log. "/". &getLog($log)) : $ooo; <---------
...

不太确定如何修复在无效上下文中无用使用私有(private)变量

谁知道怎么修它?

编辑:
78             $ooodata ? ($fl = $fl. "/.ooo_data") : ($fl = $fl. "/.ooo");

如果是 ? :那么为什么它没有在 78 处发出警告呢?

最佳答案

考虑一下 $ooolog 时会发生什么是假的。你最终执行

$ooo;  # Useless

我想你是为了
$ooo = $ooolog ? $log . "/" . &getLog($log) : $ooo;

但是做起来更简单
$ooo = $log . "/" . &getLog($log) if $ooolog;

在添加的问题中,您不再收到警告,因为
$ooo;                  # Useless

已被替换为
$fl = $fl. "/.ooo";    # Not useless

也就是说,
$ooodata ? ($fl = $fl. "/.ooo_data") : ($fl = $fl. "/.ooo");

写成更好
$fl .= $ooodata ? "/.ooo_data" : "/.ooo";

如果您在条件运算符中进行了赋值,则说明您做错了(次优和/或难以阅读)。

关于Perl 在 void 上下文中对私有(private)变量的无用使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20080667/

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