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

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.

主站蜘蛛池模板: 邵阳市| 介休市| 长汀县| 松滋市| 绍兴市| 紫云| 青川县| 漳浦县| 宜良县| 津南区| 辛集市| 苏尼特右旗| 仁怀市| 肃宁县| 怀远县| 祥云县| 永昌县| 仙桃市| 新野县| 安福县| 九江县| 乾安县| 海兴县| 墨玉县| 静乐县| 陵水| 伊吾县| 剑川县| 广丰县| 黔西| 丁青县| 福建省| 武城县| 乌兰察布市| 敦煌市| 太康县| 宁安市| 赤城县| 靖安县| 迭部县| 乌拉特前旗|