在哈希键周围的引号是Perl的良好做法吗?

前端之家收集整理的这篇文章主要介绍了在哈希键周围的引号是Perl的良好做法吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在Perl中使用散列时,引用密钥是个好主意吗?

我正在开发一个非常大的传统Perl代码库,并试图采用Damian Conway在Perl Best Practices建议的很多最佳实践。我知道最好的做法总是与程序员一个有趣的主题,但希望我能得到一些好的答案这一个没有开始火焰战争。我也知道,这可能是很多人不会争论,因为它是一个小问题,但我想尝试获得一个完整的指南,以遵循我的方式通过这个代码库。

Perl Best Practices book by Damian Conway,有这个例子显示了如何对齐有助于一段代码的可读性,但它没有提到(在书中的任何地方,我可以找到)任何关于引用哈希键。

$ident{ name   } = standardize_name($name);
$ident{ age    } = time - $birth_date;
$ident{ status } = 'active';

难道这不是更好的用引号来强调你不使用裸词吗?

$ident{ 'name'   } = standardize_name($name);
$ident{ 'age'    } = time - $birth_date;
$ident{ 'status' } = 'active';

解决方法

当指定常量字符串哈希键时,应始终使用(单个)引号。例如,$ hash {‘key’}这是最好的选择,因为它避免了需要考虑这个问题,并导致一致的格式化。如果你有时候抛弃引号,当你的键包含内部连字号,空格或其他特殊字符时,你必须记住添加它们。在这些情况下,您必须使用引号,导致格式不一致(有时无引号,有时引号)。引用的键也更可能由编辑器进行语法高亮。

这里有一个例子,使用“引用有时,没有引用其他时间”的约定可以让你陷入麻烦:

$settings{unlink-devices} = 1; # I saved two characters!

这将编译只是罚款使用严格,但不会完全符合你的期望在运行时。哈希键是字符串。字符串应根据其内容进行引用:单引号用于文字字符串,双引号用于允许可变插值。引用你的散列键。这是最安全的会议,最简单的理解和跟随。

猜你在找的Perl相关文章