Поиск

Скалярные переменные

Для хранения скалярных данных в Perl используются скалярные переменные. Скалярная переменная обозначается символом доллара и следующим за ним именем переменной. Вот несколько примеров скалярных переменных:


Stotal
$Date
$serial_number
$cat450

Символ доллара, называемый идентификатором типа, указывает Perl, что переменная содержит скалярные данные. Кроме переменных скалярного типа, в Perl существуют также переменные других типов (хэши и массивы), для обозначения которых предусмотрены специальные символы. Кроме того, в некоторых случаях в именах переменных идентификаторы могут вообще не использоваться (например, для обозначения дескриптора файла). Имена переменных в Perl, независимо от их типа, т.е. имена хэшей, массивов, дескрипторов файлов и скаляров, должны следовать определенным правилам.

  • Имена переменных должны состоять из идентификатора типа и идущих за ним символов латинского алфавита (a—z и A—Z), цифровых символов или символа подчеркивания. Но первый символ переменной не может быть цифрой.
  • Имена переменных чувствительны к регистру. Это означает, что для имен переменных немаловажно, в какой форме идет буквенный символ: строчной или прописной. Следующие имена представляют различные скалярные переменные: $value
    $VALUE
    $Value
    $valuE

Кроме того, в Perl зарезервированы имена некоторых односимвольных переменных. Такие переменные, как $_, $", $/, и $$, называются специальными и их не следует использовать как обычные переменные в Perl-программах. Назначение специальных переменных будет описано ниже.

В отличие от некоторых других языков программирования, в Perl переменные перед использованием не обязательно должны быть описаны и проинициализированы. Для создания скалярной переменной просто используйте ее. Для неинициализированных переменных Perl использует значение, принятое по умолчанию. Если пере-менная используется как число (например, в математическом выражении), ее значение по умолчанию — 0 (нуль), если переменная используется как строка (т.е. почти во всех остальных случаях), используется "" или пустая строка.

Использование неинициализированных переменных считается образцом плохого стиля программирования. Если Perl запущен из командной строки с ключом -w или же этот ключ указан в первой строке программы (с символами К!) после имени интерпретатора, подобные ситуации отслеживаются и выдается соответствующее предупреждение. Если вы используете неинициализированную переменную, выдается ошибка Use of uninitialized value.
Специальная переменная $

В Perl предусмотрена специальная переменная, значение которой используется во многих выражениях, если явно не указана другая переменная. Речь идет о переменной $_. Например, если вызвать функцию print без параметров, будет распечатано текушее значение переменной $_:

$ ="Dark Side of the Moon";
print; |Печатает значение переменной $_, "Dark Side ..."

Подобное неявное использование переменной $_ может создать определенную неразбериху, учитывая, что этой переменной значение может присваиваться задолго до ее применения.

Однако подобная методика удобна в случае применения регулярных выражений, о чем речь пойдет на 6-м занятии, "Поиск по шаблону". В этой книге я старался как можно реже использовать переменную $_, чтобы программы было легче читать.