Подтвердить что ты не робот

Почему переменные Perl должны начинаться с $,%, @(sigils)?

Почему переменные Perl должны начинаться с разных символов (sigils)?

  • Скалярные переменные начинаются с $

  • Хеши начинаются с %

  • Массивы начинаются с @

Почему они такие?

4b9b3361

Ответ 1

Когда я начал использовать Perl, мне объяснили, что эти символы выбраны потому, что:

  • $ выглядел немного как "s", так что это было для s calars,
  • @ имеет 'a' в середине, так что это было для a rrays и
  • % был для хэшей, потому что он выглядел как пара ключ-значение, деленная на косую черту.

Ответ 2

Это потому, что Perl использует sigils:

В компьютерном программировании сигила (произносится как/'sɪdʒ.ɪl/или/'sɪg.ɪl/; множественная сигилия или сигилы) является символом прикрепленный к имени переменной, показывающий переменный тип данных или область видимости. термин впервые был применен к использованию Perl Филиппом Гвином в 1999 году, чтобы заменить более громоздкий "забавный персонаж в перед именем переменной". на основе слова, означающего магический символ (см. сигил (магия)).

Ответ 3

Несколько причин: объяснено Ларри Уолл и др. в "Программирование Perl":

В любом пространстве имен [...] каждый тип переменной имеет свое собственное пространство поднаборов, определенное смешным символом. Вы можете без страха конфликта использовать одно и то же имя для скалярной переменной, массива или хэша (или, если на то пошло, дескриптора файла, подпрограммы, метки или вашего любимого ламы.)

[...]

Как и большинство языков компьютера, Perl имеет список зарезервированных слов, которые он распознает как специальные ключевые слова. Однако, поскольку имена переменных всегда начинаются со смешного символа, зарезервированные слова фактически не конфликтуют с именами переменных.

Ответ 4

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

Английский использует число и порядок слов, с остатками системы case в местоимениях: "Человек посмотрел на мужчин, и они оглянулись на него". В этом предложении совершенно ясно, кто что делает, кому. Точно так же Perl имеет числовые маркеры в своих существительных; то есть $dog - это один pooch, а @dog (потенциально) много. Таким образом, $и @немного похожи на "this" и "these" на английском языке.

Ответ 5

  • Поскольку Perl предназначался для замены сценариев оболочки, а переменные в оболочке начинаются с $.
  • Чтобы отличить скаляры ($), массивы (@) и хэши (%).

Ответ 6

Не все из них, некоторые начинаются с% (хэши) или с @(массивы).

Это дизайнерское решение для обозначения их как переменных, а также их тип.

Обратите внимание, что вы можете иметь как $abc, так и %abc.

Просмотрите руководство по Perl-переменным.