SlideShare a Scribd company logo
1 of 19
Download to read offline
Perl в повседневной практике Олег Алистратов
Проекты ,[object Object],[object Object],[object Object]
Синтаксис perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/&quot; -;;s;;$_;see'
Синтаксис package  Point; use  Moose; has  'x'  => (is =>  'rw' , isa =>  'Int' ); has  'y'  => (is =>  'rw' , isa =>  'Int' ); sub  clear { my  $self =  shift ; $self->x(0); $self->y(0); }
Однострочники # Change all the isolated oldvar occurrences to newvar perl -i.old -pe 's{oldvar}{newvar}g' *.pl # Find palindromes perl -lne 'print if $_ eq reverse' /usr/dict/words # Command-line that reverse all the bytes in a file perl -e 'print scalar reverse <>' f1 f2 f3 ... # Remove all blank lines. perl -ne 'print unless /^$/' # Print prime numbers perl -wle '(1 x $_) !~ /^(11+?)+$/ && print while ++$_'
CPAN ,[object Object],[object Object],[object Object],[object Object],[object Object]
Net::XMPP use  Net::XMPP; my  $xmpp = new Net::XMPP::Client(); $xmpp->SetCallBacks( message  => amp;InMessage); $xmpp->Execute( hostname  =>  'talk.google.com' , port  => 5222, username  =>  'user@gmail.com' , password  =>  'passw' , resource  =>  'Messenger' , ); $xmpp->Disconnect();
Net::Oscar use  Net::OSCAR  qw(:standard) ; sub  im_in {  my  ($oscar, $sender, $message, $is_away) = @_; print   &quot;[AWAY] &quot;   if  $is_away; print   &quot;$sender: $message&quot; ; } $oscar = Net::OSCAR->new(); $oscar->set_callback_im_in(amp;im_in); $oscar->signon($screenname, $password); while  (1) {  $oscar->do_one_loop();  }
AI::NeuralNet::BackProp # Create a new network with 1 layer, 5 inputs,  # and 5 outputs. my  $net = new AI::NeuralNet::BackProp(1, 5, 5); # Add a small amount of randomness to the network $net->random(0.001); # Demonstrate a simple learn() call my  @inputs = ( 0, 0, 1, 1, 1, ); my  @ouputs = ( 1, 0, 1, 0, 1, ); print  $net->learn(inputs, outputs),  &quot;&quot; ;
Mojolicious use  Mojolicious::Lite; # Route with placeholder get  '/:foo'  =>  sub  { my  $self =  shift ; my  $foo  = $self->param( 'foo' ); $self->render(text =>  &quot;Hello from $foo!&quot; ); }; app->start;
Динамические возможности ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Мультипарадигменность ,[object Object],[object Object],[object Object],[object Object]
Производительность ,[object Object],[object Object],[object Object],[object Object],[object Object]
Преимущества ,[object Object],[object Object],[object Object],[object Object],[object Object]
Недостатки ,[object Object],[object Object],[object Object],[object Object]
Технологии на экспорт ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Сообщества ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Сообщества ,[object Object],[object Object],[object Object]
Спасибо ! Олег Алистратов [email_address]

More Related Content

What's hot

Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)
Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)
Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)Ontico
 
JavaScript на сервере, 1ms на трансформацию (Андрей Сумин)
JavaScript на сервере, 1ms на трансформацию (Андрей Сумин)JavaScript на сервере, 1ms на трансформацию (Андрей Сумин)
JavaScript на сервере, 1ms на трансформацию (Андрей Сумин)Ontico
 
Thumbtack Expertise Days # 5 - Ansible
Thumbtack Expertise Days # 5 - AnsibleThumbtack Expertise Days # 5 - Ansible
Thumbtack Expertise Days # 5 - AnsibleAlexey Remnev
 
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScriptСтажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScriptSmartTools
 
Зачем программистам Ansible
Зачем программистам AnsibleЗачем программистам Ansible
Зачем программистам AnsibleDenis Honig
 
Не верь никому или разработка эффективных приложений (Как писать по настоящем...
Не верь никому или разработка эффективных приложений (Как писать по настоящем...Не верь никому или разработка эффективных приложений (Как писать по настоящем...
Не верь никому или разработка эффективных приложений (Как писать по настоящем...Moscow.pm
 
Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...
Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...
Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...Moscow.pm
 
CSSO — сжимаем CSS
CSSO — сжимаем CSSCSSO — сжимаем CSS
CSSO — сжимаем CSSFDConf
 
Дмитрий Щадей "Зачем и как мы используем jsLint"
Дмитрий Щадей "Зачем и как мы используем jsLint"Дмитрий Щадей "Зачем и как мы используем jsLint"
Дмитрий Щадей "Зачем и как мы используем jsLint"Yandex
 
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...Vadim Kruchkov
 
Командная разработка “толстых клиентов”
Командная разработка “толстых клиентов”Командная разработка “толстых клиентов”
Командная разработка “толстых клиентов”Open-IT
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорьdrupalconf
 
Мульти-доменность в Django проекте
Мульти-доменность в Django проектеМульти-доменность в Django проекте
Мульти-доменность в Django проектеAlexey Kinyov
 
Изоморфный JavaScript (iForum 2015)
Изоморфный JavaScript (iForum 2015)Изоморфный JavaScript (iForum 2015)
Изоморфный JavaScript (iForum 2015)Max Klymyshyn
 
Дмитрий Милых «Деплой Django-проекта с помощью Fabric»
Дмитрий Милых «Деплой Django-проекта с помощью Fabric»Дмитрий Милых «Деплой Django-проекта с помощью Fabric»
Дмитрий Милых «Деплой Django-проекта с помощью Fabric»DataArt
 

What's hot (19)

Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)
Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)
Приёмы разработки высоконагруженных приложений на Twisted (Андрей Смирнов)
 
Wordpress Cron
Wordpress CronWordpress Cron
Wordpress Cron
 
Почему Mojolicious?
Почему Mojolicious?Почему Mojolicious?
Почему Mojolicious?
 
JavaScript на сервере, 1ms на трансформацию (Андрей Сумин)
JavaScript на сервере, 1ms на трансформацию (Андрей Сумин)JavaScript на сервере, 1ms на трансформацию (Андрей Сумин)
JavaScript на сервере, 1ms на трансформацию (Андрей Сумин)
 
Thumbtack Expertise Days # 5 - Ansible
Thumbtack Expertise Days # 5 - AnsibleThumbtack Expertise Days # 5 - Ansible
Thumbtack Expertise Days # 5 - Ansible
 
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScriptСтажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
 
Зачем программистам Ansible
Зачем программистам AnsibleЗачем программистам Ansible
Зачем программистам Ansible
 
Authentication security
Authentication securityAuthentication security
Authentication security
 
Не верь никому или разработка эффективных приложений (Как писать по настоящем...
Не верь никому или разработка эффективных приложений (Как писать по настоящем...Не верь никому или разработка эффективных приложений (Как писать по настоящем...
Не верь никому или разработка эффективных приложений (Как писать по настоящем...
 
Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...
Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...
Динамический код: модифицируем таблицу символов во время выполнения. Елена Ши...
 
CSSO — сжимаем CSS
CSSO — сжимаем CSSCSSO — сжимаем CSS
CSSO — сжимаем CSS
 
Дмитрий Щадей "Зачем и как мы используем jsLint"
Дмитрий Щадей "Зачем и как мы используем jsLint"Дмитрий Щадей "Зачем и как мы используем jsLint"
Дмитрий Щадей "Зачем и как мы используем jsLint"
 
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...
 
Командная разработка “толстых клиентов”
Командная разработка “толстых клиентов”Командная разработка “толстых клиентов”
Командная разработка “толстых клиентов”
 
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорь
 
Мульти-доменность в Django проекте
Мульти-доменность в Django проектеМульти-доменность в Django проекте
Мульти-доменность в Django проекте
 
Изоморфный JavaScript (iForum 2015)
Изоморфный JavaScript (iForum 2015)Изоморфный JavaScript (iForum 2015)
Изоморфный JavaScript (iForum 2015)
 
Nginx.pm
Nginx.pmNginx.pm
Nginx.pm
 
Дмитрий Милых «Деплой Django-проекта с помощью Fabric»
Дмитрий Милых «Деплой Django-проекта с помощью Fabric»Дмитрий Милых «Деплой Django-проекта с помощью Fabric»
Дмитрий Милых «Деплой Django-проекта с помощью Fabric»
 

Viewers also liked

Regular expressions in Perl 5.14
Regular expressions in Perl 5.14Regular expressions in Perl 5.14
Regular expressions in Perl 5.14Oleg Alistratov
 
Animals
AnimalsAnimals
AnimalsDavid
 
PROFILO PSICOPROFESSIONALE MARCO COLLA (1) (1)
PROFILO PSICOPROFESSIONALE MARCO COLLA (1) (1)PROFILO PSICOPROFESSIONALE MARCO COLLA (1) (1)
PROFILO PSICOPROFESSIONALE MARCO COLLA (1) (1)Marco Colla
 
Web application scalability
Web application scalabilityWeb application scalability
Web application scalabilityOleg Alistratov
 
PREHISTORIA5º
PREHISTORIA5ºPREHISTORIA5º
PREHISTORIA5ºcpsje56
 

Viewers also liked (9)

Regular expressions in Perl 5.14
Regular expressions in Perl 5.14Regular expressions in Perl 5.14
Regular expressions in Perl 5.14
 
Animals
AnimalsAnimals
Animals
 
Web 2 0
Web 2 0Web 2 0
Web 2 0
 
L10N
L10NL10N
L10N
 
PROFILO PSICOPROFESSIONALE MARCO COLLA (1) (1)
PROFILO PSICOPROFESSIONALE MARCO COLLA (1) (1)PROFILO PSICOPROFESSIONALE MARCO COLLA (1) (1)
PROFILO PSICOPROFESSIONALE MARCO COLLA (1) (1)
 
Web application scalability
Web application scalabilityWeb application scalability
Web application scalability
 
Perl & Unicode
Perl & UnicodePerl & Unicode
Perl & Unicode
 
NYFW - Rebecca Taylor
NYFW - Rebecca TaylorNYFW - Rebecca Taylor
NYFW - Rebecca Taylor
 
PREHISTORIA5º
PREHISTORIA5ºPREHISTORIA5º
PREHISTORIA5º
 

Similar to Perl in practice

Js Http Request дмитрий котеров
Js Http Request   дмитрий котеровJs Http Request   дмитрий котеров
Js Http Request дмитрий котеровMedia Gorod
 
Groovy On Grails
Groovy On GrailsGroovy On Grails
Groovy On Grailsguest32215a
 
ZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf Conference
 
Groovy presentation on Exception #7 conference
Groovy presentation on Exception #7 conferenceGroovy presentation on Exception #7 conference
Groovy presentation on Exception #7 conferencevoituk
 
Выступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance ConferenceВыступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance ConferenceEYevseyeva
 
ZFConf 2010: Zend Framework and Multilingual
ZFConf 2010: Zend Framework and MultilingualZFConf 2010: Zend Framework and Multilingual
ZFConf 2010: Zend Framework and MultilingualZFConf Conference
 
PHP Tricks
PHP TricksPHP Tricks
PHP TricksBlackFan
 
Импорт данных с фреймворком Migrate. Владислав Богатырев.
Импорт данных с фреймворком Migrate. Владислав Богатырев.Импорт данных с фреймворком Migrate. Владислав Богатырев.
Импорт данных с фреймворком Migrate. Владислав Богатырев.DrupalCampDN
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPITimur Shemsedinov
 
Psgi app
Psgi appPsgi app
Psgi appund3f
 
Семинар-практикум по Drupal
Семинар-практикум по DrupalСеминар-практикум по Drupal
Семинар-практикум по Drupalit-people
 
Интеграция Яндекс Сервер
Интеграция Яндекс СерверИнтеграция Яндекс Сервер
Интеграция Яндекс СерверPVasili
 
Igor Khotin - Domain Specific Languages
Igor Khotin - Domain Specific LanguagesIgor Khotin - Domain Specific Languages
Igor Khotin - Domain Specific LanguagesIgor Khotin
 
Разработка на Perl под Raspberry PI
Разработка на Perl под Raspberry PIРазработка на Perl под Raspberry PI
Разработка на Perl под Raspberry PIIlya Chesnokov
 
Saint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demoSaint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demomegakott
 

Similar to Perl in practice (20)

Js Http Request дмитрий котеров
Js Http Request   дмитрий котеровJs Http Request   дмитрий котеров
Js Http Request дмитрий котеров
 
Groovy On Grails
Groovy On GrailsGroovy On Grails
Groovy On Grails
 
Ruby
RubyRuby
Ruby
 
ZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and Doctrine
 
Groovy presentation on Exception #7 conference
Groovy presentation on Exception #7 conferenceGroovy presentation on Exception #7 conference
Groovy presentation on Exception #7 conference
 
Ci
CiCi
Ci
 
Выступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance ConferenceВыступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
 
Perl – жив?!
Perl – жив?!Perl – жив?!
Perl – жив?!
 
ZFConf 2010: Zend Framework and Multilingual
ZFConf 2010: Zend Framework and MultilingualZFConf 2010: Zend Framework and Multilingual
ZFConf 2010: Zend Framework and Multilingual
 
PHP Tricks
PHP TricksPHP Tricks
PHP Tricks
 
Импорт данных с фреймворком Migrate. Владислав Богатырев.
Импорт данных с фреймворком Migrate. Владислав Богатырев.Импорт данных с фреймворком Migrate. Владислав Богатырев.
Импорт данных с фреймворком Migrate. Владислав Богатырев.
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
 
Psgi app
Psgi appPsgi app
Psgi app
 
Семинар-практикум по Drupal
Семинар-практикум по DrupalСеминар-практикум по Drupal
Семинар-практикум по Drupal
 
бегун
бегунбегун
бегун
 
Интеграция Яндекс Сервер
Интеграция Яндекс СерверИнтеграция Яндекс Сервер
Интеграция Яндекс Сервер
 
Igor Khotin - Domain Specific Languages
Igor Khotin - Domain Specific LanguagesIgor Khotin - Domain Specific Languages
Igor Khotin - Domain Specific Languages
 
Разработка на Perl под Raspberry PI
Разработка на Perl под Raspberry PIРазработка на Perl под Raspberry PI
Разработка на Perl под Raspberry PI
 
Saint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demoSaint Perl 2009: CGI::Ajax demo
Saint Perl 2009: CGI::Ajax demo
 
Mojolicious
MojoliciousMojolicious
Mojolicious
 

Perl in practice

  • 1. Perl в повседневной практике Олег Алистратов
  • 2.
  • 3. Синтаксис perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/&quot; -;;s;;$_;see'
  • 4. Синтаксис package Point; use Moose; has 'x' => (is => 'rw' , isa => 'Int' ); has 'y' => (is => 'rw' , isa => 'Int' ); sub clear { my $self = shift ; $self->x(0); $self->y(0); }
  • 5. Однострочники # Change all the isolated oldvar occurrences to newvar perl -i.old -pe 's{oldvar}{newvar}g' *.pl # Find palindromes perl -lne 'print if $_ eq reverse' /usr/dict/words # Command-line that reverse all the bytes in a file perl -e 'print scalar reverse <>' f1 f2 f3 ... # Remove all blank lines. perl -ne 'print unless /^$/' # Print prime numbers perl -wle '(1 x $_) !~ /^(11+?)+$/ && print while ++$_'
  • 6.
  • 7. Net::XMPP use Net::XMPP; my $xmpp = new Net::XMPP::Client(); $xmpp->SetCallBacks( message => amp;InMessage); $xmpp->Execute( hostname => 'talk.google.com' , port => 5222, username => 'user@gmail.com' , password => 'passw' , resource => 'Messenger' , ); $xmpp->Disconnect();
  • 8. Net::Oscar use Net::OSCAR qw(:standard) ; sub im_in { my ($oscar, $sender, $message, $is_away) = @_; print &quot;[AWAY] &quot; if $is_away; print &quot;$sender: $message&quot; ; } $oscar = Net::OSCAR->new(); $oscar->set_callback_im_in(amp;im_in); $oscar->signon($screenname, $password); while (1) { $oscar->do_one_loop(); }
  • 9. AI::NeuralNet::BackProp # Create a new network with 1 layer, 5 inputs, # and 5 outputs. my $net = new AI::NeuralNet::BackProp(1, 5, 5); # Add a small amount of randomness to the network $net->random(0.001); # Demonstrate a simple learn() call my @inputs = ( 0, 0, 1, 1, 1, ); my @ouputs = ( 1, 0, 1, 0, 1, ); print $net->learn(inputs, outputs), &quot;&quot; ;
  • 10. Mojolicious use Mojolicious::Lite; # Route with placeholder get '/:foo' => sub { my $self = shift ; my $foo = $self->param( 'foo' ); $self->render(text => &quot;Hello from $foo!&quot; ); }; app->start;
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. Спасибо ! Олег Алистратов [email_address]