Некоторые сведения о Perl 5: различия между версиями

Перейти к навигации Перейти к поиску
Дополнения, исправления, оформление.
(Дополнения, исправления, оформление.)
=== Переменные ===
 
Переменные в 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 ===
'''<span style="color:orange">bool одно из двух значений '''<span style="color:purple">'''( TRUE, FALSE )'''</span>'''</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>&amp;</code>, <code>|</code>
: поразрядные [[w:Битовые операции|битовые]] умножение и сложение; пример: <code>123 & 456</code> → 72 (001111011₂ ⊙ 111001000₂ = 001001000₂.)
; <code>&lt;&lt;</code>, <code>&gt;&gt;</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
Ifmy ($aanswer ==10) {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>
3891

правка

Навигация