当前位置:  开发笔记 > 编程语言 > 正文

为什么我不能在Perl中设置$ LIST_SEPARATOR?

如何解决《为什么我不能在Perl中设置$LIST_SEPARATOR?》经验,为你挑选了3个好方法。

我想在perl中设置LIST_SEPARATOR,但我得到的就是这个警告:

Name "main::LIST_SEPARATOR" used only once: possible typo at ldapflip.pl line 7.

这是我的计划:

#!/usr/bin/perl -w

@vals;
push @vals, "a";
push @vals, "b";

$LIST_SEPARATOR='|';

print "@vals\n";

我确信我错过了一些明显的东西,但我没有看到它.

谢谢



1> ephemient..:

只有助记符可用

$" = '|';

除非你

use English;

第一.

如perlvar中所述.请阅读文档.

以下名称对Perl具有特殊含义.大多数标点符号都有合理的助记符或shell中的类比.不过,如果你想使用长变量名,你只需要说

use English;

在你的程序的顶部.这会将所有短名称别名化为当前包中的长名称.有些人甚至有中等名字,通常是从awk借来的.一般来说,最好使用

use English '-no_match_vars';

如果您不需要$ PREMATCH,$ MATCH或$ POSTMATCH,则调用,因为它可以避免使用正则表达式导致某些性能损失.见英文.



2> Chris Lutz..:

perlvar是你的朋友:

$LIST_SEPARATOR
$"

这类似于$,它应用于插入到双引号字符串(或类似的解释字符串)中的数组和切片值.默认是一个空格.(助记符:很明显,我想.)

$LIST_SEPARATOR只有您可以使用use English;如果您不想use English;在所有程序中使用,请$"改用.相同的变量,只是更简洁的名称.


他们将在您使用英语模块后立即工作.

3> Telemachus..:

稍微偏离主题(问题已经得到很好的回答),但我没有得到吸引力English.

缺点:

更多打字

名字不是更明显(即,我仍然需要查看)

优点:

我可以看到其他读者的好处- 特别是那些根本不了解Perl的人.但是,在这种情况下,如果它使代码的问题更具可读性后来,我宁愿这样的:

{
  local $" = '|'; # Set interpolated list separator to '|'
  # fun stuff here...
}

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有