官术网_书友最值得收藏!

  • Perl 6 Deep Dive
  • Andrew Shitov
  • 266字
  • 2021-07-03 00:05:41

Sigils

One of the most difficult things for the newcomers to Perl are sigils. A sigil is a character in front of the name of variables in Perl that denotes the structural type of a variable. For example, $ for scalar values, @ for arrays, and % for hashes.

The problem arises when you access an element of an array or hash. Let's consider the following lines of code as an example in Perl 5 of an array with the first few Fibonacci numbers:

my @fibonacci = (0, 1, 1, 2, 3, 5, 8, 13);
print $fibonacci[4];

First, a @fibonacci array is created. The name of the variable includes the @ character as a sigil. In the second line, we access one of the elements of that array and use another sigil, $, this time. This is because a single element of an array is a scalar, and scalars use $ as a sigil. For those who learn Perl, this small change in sigils is a big problem in understanding the basics of the language.

In Perl 6, sigils are unified and are part of the variable names. You do not change it independently, whether you access an element of an array or an array as a whole. The preceding example will look like this in Perl 6:

my @fibonacci = (0, 1, 1, 2, 3, 5, 8, 13);
print @fibonacci[4];

In both lines, the same sigil is used for the @fibonacci array and for its @fibonacci[4] element. This approach is much more consistent and easier for a beginner.

主站蜘蛛池模板: 吉安县| 济阳县| 丘北县| 西乌珠穆沁旗| 诸暨市| 铜川市| 永嘉县| 会泽县| 马鞍山市| 琼中| 福鼎市| 通海县| 静乐县| 莱州市| 万山特区| 江达县| 文成县| 三明市| 晋江市| 枣阳市| 北川| 鄂托克前旗| 白水县| 奎屯市| 华坪县| 留坝县| 宾阳县| 蓝山县| 清镇市| 廉江市| 涟水县| 西林县| 通山县| 祁门县| 吴江市| 德令哈市| 昂仁县| 花垣县| 依兰县| 天气| 江口县|