Некоторые сведения о Perl 5: различия между версиями
Нет описания правки |
Дополнения, исправления, оформление. |
||
Строка 1: | Строка 1: | ||
=== Переменные === |
=== Переменные === |
||
Переменные в Perl обозначаются символом $ перед ними. |
|||
Переменные в Perl обозначаются символами <code>$</code> (''скаляры''), <code>@</code> (''векторы'' или ''массивы'') или <code>%</code> (''таблицы'' или ''ассоциативные массивы'') перед именем. Например: |
|||
Пример: |
|||
<source lang="perl"> |
|||
'''$name = значение (число). |
|||
my $answer = 42; |
|||
my @name = ("Smith", "John"); |
|||
my %favorites |
|||
= ("color" => "green", |
|||
"fruit" => "watermelon"); |
|||
</source> |
|||
=== Типы чисел в Perl === |
=== Типы чисел в Perl === |
||
'''<span style="color:orange">bool одно из двух значений '''<span style="color:purple">'''( TRUE, FALSE )'''</span>'''</span>''' |
'''<span style="color:orange">bool одно из двух значений '''<span style="color:purple">'''( TRUE, FALSE )'''</span>'''</span>''' |
||
'''<span style="color:orange">+/- плюс/минус</span>''' |
'''<span style="color:orange">+/- плюс/минус</span>''' |
||
=== Print === |
|||
Этот оператор выводит текст на экран. |
|||
'''Синтаксис:''' |
|||
'''<span style="color:green">print = "В кавычках находится любой текст или имя переменной в формате $имя"</span>''' |
|||
=== Функция print === |
|||
Пример: |
|||
'''print ="Hello, world"''' |
|||
Функция <code>print</code> последовательно выводит аргументы в указанный поток (по-умолчанию: на стандартный вывод.) Например: |
|||
=== Алгебраические операторы === |
|||
<source lang="perl"> |
|||
'''<span style="color:orange">+/- плюс/минус</span>''' |
|||
print ("Hello", @name, "!\n"); # предполагаем local $, = " "; |
|||
'''<span style="color:orange">* умножение</span>''' |
|||
print STDERR ("ERROR!\n"); |
|||
'''<span style="color:orange">% остаток от деления</span>''' |
|||
</source> |
|||
=== Арифметические операторы === |
|||
Perl поддерживает вполне обычный набор арифметических операторов: |
|||
; <code>+</code>, <code>-</code>, <code>*</code>, <code>/</code>, <code>%</code> |
|||
: сложение, вычитание, умножение, частное и остаток от деления, соответственно; |
|||
; <code>&</code>, <code>|</code> |
|||
: поразрядные [[w:Битовые операции|битовые]] умножение и сложение; пример: <code>123 & 456</code> → 72 (001111011₂ ⊙ 111001000₂ = 001001000₂.) |
|||
; <code><<</code>, <code>>></code> |
|||
: целочисленный битовый сдвиг (умножение на 2ⁿ.) |
|||
=== \ === |
=== \ === |
||
Ставится перед внутренними кавычками. |
|||
'''Синтаксис:''' |
|||
'''<span style="color:green">"Текст \"текст\",текст"</span>''' |
|||
=== q and qq === |
|||
Ставится перед текстом вместо кавычек. |
|||
'''Синтаксис:''' |
|||
'''<span style="color:green">q(текст\"текст\" текст)</span>''' |
|||
'''<span style="color:green">qq(текст\"текст\" текст)</span>''' |
|||
=== Оператор IF === |
|||
'''Синтаксис:''' |
|||
'''<span style="color:green">If(условие) блок операторов</span>''' |
|||
Вне двойный кавычек используется как самостоятельный оператор создания ''ссылки'' на переменную, подобно: |
|||
Пример: |
|||
<source lang="perl"> |
|||
'''$a = 10 |
|||
my $answer = 1; |
|||
my $reference = \$answer; |
|||
print = "a равна 10" }''' |
|||
$$reference = 42; |
|||
# переменная $answer теперь хранит значение 42 |
|||
</source> |
|||
В двойных кавычках указывает на особое значение следующего символа. В частности: |
|||
* <code>\n</code> — разрыв (перевод) строки; |
|||
* <code>\t</code> — [[w:табуляция|табуляция]]; |
|||
* <code>\N{''имя''}</code> — символ по имени или кодовой позиции [[w:Unicode|Unicode]] (с ведущим <code>U+</code>); |
|||
* <code>\"</code> — двойная кавычка (без ''экранирующего'' <code>\</code> двойная кавычка стала бы закрывающей для данной строковой константы.) |
|||
Примеры: |
|||
<source lang="perl"> |
|||
"Текст \"текст\", текст"; |
|||
"\N{U+263a}\n"; # → "☺\n" |
|||
</source> |
|||
<small>'''NB:''' в некоторых случаях, форма <code>"Текст «текст», текст"</code> может быть более уместна, чем <code>"Текст \"текст\", текст"</code>.</small> |
|||
=== Формы q {} и qq {} === |
|||
Альтернатива одинарным и двойным кавычкам, позволяющая применять произвольный разделитель. Подобно: |
|||
<source lang="perl"> |
|||
q /Текст "текст", текст/ |
|||
qq {Текст "текст", текст} |
|||
</source> |
|||
=== Операторы if, unless === |
|||
; Синтаксис: |
|||
: <code>if (условие) блок операторов</code> |
|||
Пример: |
|||
<source lang="perl"> |
|||
my $a = 10; |
|||
if ($a == 10) { |
|||
print "a равна 10"; |
|||
} |
|||
unless ($a == 10) { |
|||
print "a не равна 10"; |
|||
} |
|||
</source> |
|||
Отметим, что Perl позволяет указывать операторы <code>if</code> и <code>unless</code> ''после'' условной ветви, подобно: |
|||
<source lang="perl"> |
|||
print "a равна 10" |
|||
if ($a == 10); |
|||
print "a не равна 10" |
|||
unless ($a == 10); |
|||
</source> |
Версия от 18:36, 13 декабря 2013
Переменные
Переменные в Perl обозначаются символами $
(скаляры), @
(векторы или массивы) или %
(таблицы или ассоциативные массивы) перед именем. Например:
my $answer = 42;
my @name = ("Smith", "John");
my %favorites
= ("color" => "green",
"fruit" => "watermelon");
Типы чисел в Perl
bool одно из двух значений ( TRUE, FALSE ) +/- плюс/минус
Функция print
Функция print
последовательно выводит аргументы в указанный поток (по-умолчанию: на стандартный вывод.) Например:
print ("Hello", @name, "!\n"); # предполагаем local $, = " ";
print STDERR ("ERROR!\n");
Арифметические операторы
Perl поддерживает вполне обычный набор арифметических операторов:
+
,-
,*
,/
,%
- сложение, вычитание, умножение, частное и остаток от деления, соответственно;
&
,|
- поразрядные битовые умножение и сложение; пример:
123 & 456
→ 72 (001111011₂ ⊙ 111001000₂ = 001001000₂.) <<
,>>
- целочисленный битовый сдвиг (умножение на 2ⁿ.)
\
Вне двойный кавычек используется как самостоятельный оператор создания ссылки на переменную, подобно:
my $answer = 1;
my $reference = \$answer;
$$reference = 42;
# переменная $answer теперь хранит значение 42
В двойных кавычках указывает на особое значение следующего символа. В частности:
\n
— разрыв (перевод) строки;\t
— табуляция;\N{имя}
— символ по имени или кодовой позиции Unicode (с ведущимU+
);\"
— двойная кавычка (без экранирующего\
двойная кавычка стала бы закрывающей для данной строковой константы.)
Примеры:
"Текст \"текст\", текст";
"\N{U+263a}\n"; # → "☺\n"
NB: в некоторых случаях, форма "Текст «текст», текст"
может быть более уместна, чем "Текст \"текст\", текст"
.
Формы q {} и qq {}
Альтернатива одинарным и двойным кавычкам, позволяющая применять произвольный разделитель. Подобно:
q /Текст "текст", текст/
qq {Текст "текст", текст}
Операторы if, unless
- Синтаксис
if (условие) блок операторов
Пример:
my $a = 10;
if ($a == 10) {
print "a равна 10";
}
unless ($a == 10) {
print "a не равна 10";
}
Отметим, что Perl позволяет указывать операторы if
и unless
после условной ветви, подобно:
print "a равна 10"
if ($a == 10);
print "a не равна 10"
unless ($a == 10);