From ff3b464026313e6ca2a11a9671c27c43b340da8f Mon Sep 17 00:00:00 2001
From: Elena Bolshakova <lena-san@yandex-team.ru>
Date: Fri, 28 Nov 2014 11:36:41 +0300
Subject: [perl/ru] Russian translation for Perl 5

---
 ru-ru/perl-ru.html.markdown | 169 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 169 insertions(+)
 create mode 100644 ru-ru/perl-ru.html.markdown

(limited to 'ru-ru/perl-ru.html.markdown')

diff --git a/ru-ru/perl-ru.html.markdown b/ru-ru/perl-ru.html.markdown
new file mode 100644
index 00000000..9e9c7748
--- /dev/null
+++ b/ru-ru/perl-ru.html.markdown
@@ -0,0 +1,169 @@
+---
+category: language
+language: perl
+filename: learnperl-ru.pl
+contributors:
+    - ["Korjavin Ivan", "http://github.com/korjavin"]
+translators:
+    - ["Elena Bolshakova", "http://github.com/liruoko"]
+lang: ru-ru
+---
+
+Perl 5 -- высокоуровневый мощный язык с 25-летней историей. 
+Особенно хорош для обработки разнообразных текстовых данных. 
+
+Perl 5 работает более чем на 100 платформах, от портативных устройств
+до мейнфреймов, и подходит как для быстрого прототипирования, 
+так и для крупных проектов. 
+
+```perl
+# Комментарии начинаются с символа решетки.
+
+
+#### Типы переменных в Perl
+
+#  Скалярные переменные начинаются с знака доллара $.
+#  Имя переменной состоит из букв, цифр и знаков подчеркивания, 
+#  начиная с буквы или подчеркивания. 
+
+### В Perl три основных типа переменных: скаляры, массивы, хеши.
+
+## Скаляры
+#  Скаляр хранит отдельное значение:
+my $animal = "camel";
+my $answer = 42;
+
+# Скаляры могут быть строками, целыми и вещественными числами.
+# Когда требуется, Perl автоматически выполняет преобразования к нужному типу.
+
+## Массивы
+#  Массив хранит список значений:
+my @animals = ("camel", "llama", "owl");
+my @numbers = (23, 42, 69);
+my @mixed   = ("camel", 42, 1.23);
+
+
+## Хеши
+#   Хеш хранит набор пар ключ/значение:
+
+my %fruit_color = ("apple", "red", "banana", "yellow");
+
+#  Можно использовать оператор "=>" для большей наглядности:
+
+my %fruit_color = (
+        apple  => "red",
+        banana => "yellow",
+        );
+
+# Важно: вставка и поиск в хеше выполняются за константное время, 
+# независимо от его размера.
+
+# Скаляры, массивы и хеши подробно описаны в разделе perldata
+# (perldoc perldata).
+
+# Более сложные структуры данных можно получить, если использовать ссылки.
+# С помощью ссылок можно получить массив массивов хешей, в которых хранятся другие хеши.
+
+#### Условные операторы и циклы
+
+# В Perl есть большинсво привычных условных и циклических конструкций.
+
+if ( $var ) {
+    ...
+} elsif ( $var eq 'bar' ) {
+    ...
+} else {
+    ...
+}
+
+unless ( condition ) {
+                   ...
+               }
+# Это более читаемый вариант для "if (!condition)"
+
+# Специфические Perl-овые пост-условия: 
+print "Yow!" if $zippy;
+print "We have no bananas" unless $bananas;
+
+#  while
+  while ( condition ) {
+                   ...
+               }
+
+
+# for, foreach
+for ($i = 0; $i <= $max; $i++) {
+                   ...
+               }
+
+foreach (@array) {
+                   print "This element is $_\n";
+               }
+
+for my $el (@array) {
+                   print "This element is $el\n";
+               }
+
+#### Регулярные выражения
+
+# Регулярные выражения занимают важное место вPerl-е,
+# и подробно описаны в разделах документации perlrequick, perlretut и других.
+# Вкратце:
+
+# Сопоставление с образцом
+if (/foo/)       { ... }  # выполняется, если $_ содержит "foo"
+if ($a =~ /foo/) { ... }  # выполняется, если $a содержит "foo"
+
+# Простые замены
+
+$a =~ s/foo/bar/;         # заменяет foo на bar в строке $a
+$a =~ s/foo/bar/g;        # заменяет ВСЕ ВХОЖДЕНИЯ foo на bar в строке $a
+
+
+#### Файлы и ввод-вывод
+
+# Открыть файл на чтение или запись можно с помощью функции "open()".
+
+open(my $in,  "<",  "input.txt")  or die "Can't open input.txt: $!";
+open(my $out, ">",  "output.txt") or die "Can't open output.txt: $!";
+open(my $log, ">>", "my.log")     or die "Can't open my.log: $!";
+
+# Читать из файлового дескриптора можно с помощью оператора "<>".  
+# В скалярном контексте он читает одру строку из файла, в списковом -- 
+# читает сразу весь файл, сохраняя по одной строке в элементе массива:
+
+my $line  = <$in>;
+my @lines = <$in>;
+
+#### Подпрограммы (функции)
+
+# Объявить функцию просто:
+
+sub logger {
+    my $logmessage = shift;
+    open my $logfile, ">>", "my.log" or die "Could not open my.log: $!";
+    print $logfile $logmessage;
+}
+
+# Теперь можно использовать эту функцию так же, как и встроенные:
+
+logger("We have a logger subroutine!");
+```
+
+#### Perl-модули
+
+Perl-овые модули предоставляют широкий набор функциональности, 
+так что вы можете не изобретать заново велосипеды, а просто скачать 
+нужный модуль с CPAN (http://www.cpan.org/). 
+Некоторое количество самых полезных модулей включено в стандартную 
+поставку Perl.
+
+Раздел документации perlfaq содержит вопросы и ответы о многих частых 
+задачах, и часто предлагает подходящие CPAN-модули.
+
+#### Смотрите также
+
+ - [perl-tutorial](http://perl-tutorial.org/)
+ - [обучающий раздел на www.perl.com](http://www.perl.org/learn.html)
+ - [perldoc в вебе](http://perldoc.perl.org/)
+ - встроенная справка : `perldoc perlintro`
-- 
cgit v1.2.3


From 30cff7bcefd708638e99c7a9917ca2534fb38fd5 Mon Sep 17 00:00:00 2001
From: Elena Bolshakova <lena-san@yandex-team.ru>
Date: Wed, 10 Jun 2015 11:00:00 +0300
Subject: typo

---
 ru-ru/perl-ru.html.markdown | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'ru-ru/perl-ru.html.markdown')

diff --git a/ru-ru/perl-ru.html.markdown b/ru-ru/perl-ru.html.markdown
index 9e9c7748..e9ba6ff8 100644
--- a/ru-ru/perl-ru.html.markdown
+++ b/ru-ru/perl-ru.html.markdown
@@ -106,7 +106,7 @@ for my $el (@array) {
 
 #### Регулярные выражения
 
-# Регулярные выражения занимают важное место вPerl-е,
+# Регулярные выражения занимают важное место в Perl-е,
 # и подробно описаны в разделах документации perlrequick, perlretut и других.
 # Вкратце:
 
-- 
cgit v1.2.3


From 676568cca8731d0dbb2d2bdeff08cc092d283177 Mon Sep 17 00:00:00 2001
From: Elena Bolshakova <lena-san@yandex-team.ru>
Date: Wed, 10 Jun 2015 11:27:02 +0300
Subject: [perl/ru]: basic info on Unicode support; use strict; use warnings;

---
 ru-ru/perl-ru.html.markdown | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

(limited to 'ru-ru/perl-ru.html.markdown')

diff --git a/ru-ru/perl-ru.html.markdown b/ru-ru/perl-ru.html.markdown
index e9ba6ff8..0e68116c 100644
--- a/ru-ru/perl-ru.html.markdown
+++ b/ru-ru/perl-ru.html.markdown
@@ -161,6 +161,32 @@ Perl-овые модули предоставляют широкий набор
 Раздел документации perlfaq содержит вопросы и ответы о многих частых 
 задачах, и часто предлагает подходящие CPAN-модули.
 
+
+#### Unicode
+
+Вам наверняка понадобится работать с не-ASCII текстами.
+Добавьте эти прагмы в начало скрипта:
+
+```perl
+use utf8;
+use open ':std' => ':utf8';
+```
+
+Подробнее читайте в perldoc, разделы perlunicode и open.
+
+
+#### strict, warnings
+
+Прагмы strict и warnings включают полезные проверки во время компиляции:
+
+```perl
+use strict;
+use warnings;
+```
+
+Подробнее смотрите perldoc strict и perldoc warnings.
+
+
 #### Смотрите также
 
  - [perl-tutorial](http://perl-tutorial.org/)
-- 
cgit v1.2.3


From 5a0f2ef998cce1343080660e0a0c6dbcc43dfe2f Mon Sep 17 00:00:00 2001
From: Elena Bolshakova <e.a.bolshakova@yandex.ru>
Date: Wed, 2 Dec 2015 14:53:18 +0300
Subject: typo

---
 ru-ru/perl-ru.html.markdown | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'ru-ru/perl-ru.html.markdown')

diff --git a/ru-ru/perl-ru.html.markdown b/ru-ru/perl-ru.html.markdown
index 0e68116c..a907ba41 100644
--- a/ru-ru/perl-ru.html.markdown
+++ b/ru-ru/perl-ru.html.markdown
@@ -129,7 +129,7 @@ open(my $out, ">",  "output.txt") or die "Can't open output.txt: $!";
 open(my $log, ">>", "my.log")     or die "Can't open my.log: $!";
 
 # Читать из файлового дескриптора можно с помощью оператора "<>".  
-# В скалярном контексте он читает одру строку из файла, в списковом -- 
+# В скалярном контексте он читает одну строку из файла, в списковом -- 
 # читает сразу весь файл, сохраняя по одной строке в элементе массива:
 
 my $line  = <$in>;
-- 
cgit v1.2.3