加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl在void上下文中无用的私有变量

发布时间:2020-12-16 06:08:41 所属栏目:大数据 来源:网络整理
导读:我看了 How can I resolve this case of “Useless use of a variable in a void context”?,它说要使用.连接这是我做的,但我仍然是警告. 在/ mysz / bin / heer第79行的void上下文中无用的私有变量. 43 sub getLog { 44 opendir(my $dh,$_[0]) || die "can'
我看了 How can I resolve this case of “Useless use of a variable in a void context”?,它说要使用.连接这是我做的,但我仍然是警告.

在/ mysz / bin / heer第79行的void上下文中无用的私有变量.

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;  <---------
 ...

不太确定如何在void上下文中修复无用的私有变量

谁知道怎么修它?

编辑:

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";

如果你在一个条件运算符中有一个赋值,那么你做错了(某些东西是次优的和/或难以阅读的).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读