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

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.

主站蜘蛛池模板: 苗栗县| 鄂州市| 册亨县| 左贡县| 唐河县| 文安县| 泉州市| 门源| 郯城县| 互助| 始兴县| 阜城县| 铁岭县| 西贡区| 定陶县| 屯门区| 环江| 土默特左旗| 巴林右旗| 惠东县| 武胜县| 稷山县| 青浦区| 濮阳市| 阆中市| 桑日县| 象州县| 乡宁县| 岱山县| 抚顺市| 陇南市| 丰都县| 阿克陶县| 凌海市| 无极县| 堆龙德庆县| 江川县| 禹州市| 墨江| 自治县| 鄂伦春自治旗|