为什么Perl变量需要以$,%,@(sigils)开头?

时间:2009-07-07 10:48:22

标签: perl variables

为什么Perl变量需要以不同的字符(sigils)开头?

  • 标量变量以$

  • 开头
  • 哈希以%

  • 开头
  • 数组以@

  • 开头

为什么他们喜欢这个?

6 个答案:

答案 0 :(得分:59)

当我开始使用Perl时,向我解释说这些字符的选择是因为:

  • $看起来有点像's'所以那是 s calars,
  • @中间有'a',因此 a rrays,
  • %用于哈希,因为它看起来像是一个用斜线划分的键值对。

答案 1 :(得分:35)

这是因为Perl使用sigils

  

在计算机编程中,一个印记   (发音为/'sɪdʒ.ɪl/或/'sɪg.ɪl/;   复数sigilia或sigils)是一个象征   附加到变量名称,显示   变量的数据类型或范围。该   术语首先应用于Perl使用   由Philip Gwyn于1999年取代   更加繁琐的“有趣的人物”   变量名称的前面“。名称是   基于这个词的意思是一个神奇的   符号(见sigil(magic))。

答案 2 :(得分:22)

拉里·沃尔等人在“编程Perl”中提到了explained的几个原因:

  

在任何给定的命名空间[...]中,每个变量类型都有自己的子名称空间,由有趣的字符决定。您可以在不担心冲突的情况下,为标量变量,数组或散列使用相同的名称(或者,就此而言,使用文件句柄,子程序,标签或宠物美洲驼。)

     

[...]

     

与大多数计算机语言一样,Perl有一个保留字列表,它被识别为特殊关键字。但是,因为变量名始终以有趣的字符开头,所以保留字实际上不会与变量名冲突。

答案 3 :(得分:11)

  • 因为Perl旨在替换shell脚本,shell中的变量以$开头。
  • 区分标量($),数组(@)和散列(%)。

答案 4 :(得分:11)

http://www.wall.org/~larry/natural.html

  

英语使用数字和单词顺序,在代词中用案例系统的痕迹:“男人看着男人,他们回头看着他。”在这句话中,对于向谁做的事情是完全清楚的。同样,Perl在其名词上有数字标记;也就是说,$ dog是一个狗,而@dog(可能)很多。所以$和@有点像英语中的“this”和“these”。

答案 5 :(得分:2)

并非所有这些都有,有些以%(哈希)或@(数组)开头。

将它们标记为变量并表示其类型是一种设计决策。

请注意,您可以同时拥有$abc%abc

查看tutorial on Perl variables