我理解印记的规则。我可以从列表中制作散列,并与其中的平庸者一起传递参考。我不明白的是sigils 在 Perl 中提供的好处。
我听说的一些原因是:
- 字符串插值
- Ruby 具有“#{myVar}”语法,它解决了几乎所有这些问题,包括拥有完整的表达式而不必诉诸“@{[$count + 1]}”语法技巧。
- 可读性
- IDE。任何值得在盐中发挥作用的文本编辑器都具有语法突出显示。
- 允许变量 subNamespacing
- 允许我将 $foo 和 @foo 声明为两个不同的变量只会导致未来的毁灭。
编程语言中一个非常有用的特性是一致性。我的好奇心驱使我问,如果我将一个列表声明为“@foos”,并将一个计数器声明为“$count”,那么需要通过说“$foos[$count]”来访问元素有什么意义?哦!但是如果我将元素读入列表上下文中,我可以使用“@”;所以说“@foos[$idx1, $idx2]”现在是有道理的!通过查看印记,我可以看出我将读取一个数组而不是单个标量!
- 我仍然可以通过说“foos[count]”来判断我正在阅读单个元素
- 我仍然可以通过说“foos [idx1,idx2]”来判断我正在阅读多个元素。
- 我仍然可以通过说“foos{key}”来判断我正在读取单个值
- 我仍然可以通过说“foos{key1, key2}”来判断我正在读取多个值
这种模式几乎适用于我能想到的任何情况。无论使用哪个印记,或者没有任何印记,所做的事情的含义都很清楚。唯一的区别是我必须跟踪上下文并确保使符号保持一致;