gpt4 book ai didi

perl - 用 "join"在 Perl 中连接字符串

转载 作者:行者123 更新时间:2023-12-04 05:34:41 24 4
gpt4 key购买 nike

请参阅下面的更新

我正在浏览我公司某人编写的一大堆 Perl 脚本。他用了join连接字符串。例如,他是这样做的(取自一个真正的 Perl 脚本):

$fullpath=join "", $Upload_Loc, "/", "$filename";

取而代之的是:
$fullpath = "$Upload_Loc" . "/" . "$filename";

或者甚至只是这个:
$fullpath = "$Upload_Loc/$filename";

他已经不在了,但是这里的人告诉我他以这种方式连接字符串,因为它在某种程度上更好。 (他们不太清楚为什么)。

那么,为什么有人会使用 join在这件事上用了 .连接运算符,还是像第三个示例中那样将字符串一起键入?这种编码风格有正当理由吗?

我正在努力清理这里的很多烂摊子,我的第一个想法是结束这种做法。它使代码更难阅读,我肯定会做 join不是连接字符串的非常有效的方法。然而,尽管我从 3.x 版本开始就一直在用 Perl 编写脚本,但我并不认为自己是一位大师,因为我从来没有机会和比我更好的 Perl 并且可以教我的人呆在一起Perl 的深层 secret 。我只是想在我出丑之前确保我的直觉是正确的。

我有更好的方法来做到这一点。

更新

人们越来越困惑。他不只是为了连接路径。这是另一个例子:
$hotfix=join "", "$app", "_", "$mod", "_", "$bld", "_", "$hf", ".zip";

我会在哪里做这样的事情:
$hotfix = $app . "_"  $mod . "_" . $bld . "_" . "$hf.zip";

或者,更有可能
$hotfix = "${app}_${mod}_${bld}_${hf}.zip";

或者在这种情况下,我实际上可能会使用 join因为下划线会导致问题:
$hotfix = join("_", $app, $mod, $bld, $hf) . ".zip";

我的问题仍然是:他是否在做真正的 Perl 黑客知道的事情,而像我这样只做了 15 年的新手不知道?人们看着我使用 . 连接字符串吗?或者只是将它们放在引号中并说“哈!真是个菜鸟!我敢打赌他也拥有一台 Macintosh!”

或者,之前的家伙是否只是有一种独特的编程风格,就像我儿子独特的驾驶风格(包括迎头撞树)?

最佳答案

我已经为“一家知名在线零售商”完成了商业 Perl 开发的公平份额,但我从未见过 join那样用。您的第三个示例将是我的首选替代方案,因为它简单、干净且可读。

像这里的其他人一样,我认为使用 join 没有任何真正的值(value)。作为性能增强剂。它的性能可能比字符串插值略好一些,但我无法想象这样一种现实世界的情况,即可以证明优化是合理的,但代码仍然是用脚本语言编写的。

正如这个问题所表明的那样,深奥的编程习语(在任何语言中)只会导致很多误解。如果幸运的话,这种误解是良性的。我喜欢与之共事的开发人员是那些为可读性和一致性编写代码并在周末离开 Perl Golf 的开发人员。 :)

简而言之:是的,我认为他独特的风格类似于您儿子独特的驾驶风格。 :)

关于perl - 用 "join"在 Perl 中连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4217369/

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