Present saint-per3-by-pavel-vlasov

833 views

Published on

Perl quiz and tricks
Conference Saint Perl 3 (18.12.2011)

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
833
On SlideShare
0
From Embeds
0
Number of Embeds
22
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Present saint-per3-by-pavel-vlasov

  1. 1. Особенности и головоломки Perl Perl workshop Санкт-Петербург Павел Власов, 2011Особенности и головоломки Perl Павел Власов 1
  2. 2. Содержание1. Хитрости2. Головоломки3. Новые возможности PerlОсобенности и головоломки Perl Павел Власов 2
  3. 3. 1. Отладка регулярных выражений• use re ‘debug’• perldoc re• Если Perl скомпилирован с -DDEBUGGING используйте $ perl -Dr my $regexp = qr/[ab]cd*e{2,3}$/; my $text = ‘bcdee’; $text =~ $regexp;Особенности и головоломки Perl Павел Власов 3
  4. 4. 1. Отладка регулярных выраженийВо время выполнения (run time) STRING-OFFSET <PRE-STRING> <POST-STRING> |ID: TYPE Matching REx "[ab]cd*e{2,3}$" against "bcdee" 0 <> <bcdee> | 1:ANYOF[ab][](12) 1 <b> <cdee> | 12:EXACT <c>(14) 2 <bc> <dee> | 14:STAR(17) EXACT <d> can match 1 times out of 2147483647... 3 <bcd> <ee> | 17: CURLY {2,3}(21) EXACT <e> can match 2 times out of 3... 5 <bcdee> <> | 21: EOL(22) 5 <bcdee> <> | 22: END(0) Match successful! Freeing REx: "[ab]cd*e{2,3}$"Особенности и головоломки Perl Павел Власов 4
  5. 5. 2. Cила sitecustomize.pl• Влияет на все выполняемые сценарии Perl• Параметр: $Config{usesitecustomize}• Путь: $Config{sitelib}/sitecustomize.pl• Отключение данной опции $ perl -f• $perldoc perlrunОсобенности и головоломки Perl Павел Власов 5
  6. 6. 3. Может партию в козла =()=• Оператор похожий на голову козлаmy $items = ( my @date = localtime );my $items =()= localtime;my $count =()= split /:/, $line;Особенности и головоломки Perl Павел Власов 6
  7. 7. 4. Последнее выполненное выражениеsay check(4);say check(3);sub check { my $num = shift; unless ($num % 2) { return OK; }}Особенности и головоломки Perl Павел Власов 7
  8. 8. 5. @_ внутри и вне функцииmy @array = (1, 2, 3);change_array(@array); say " After: @array";sub change_array { push @_, 4; say "Inside: @_";}Особенности и головоломки Perl Павел Власов 8
  9. 9. 6. Оператор диапазонаmy $number = (1 .. 4);say $number;.. – Оператор диапазона в скалярном контексте$ perldoc perlopОсобенности и головоломки Perl Павел Власов 9
  10. 10. 6. Оператор диапазона• Используем для чтения файлов (flip flop)while(<$file>) { chomp; if (/START/ .. /END/) { say $_; }}Особенности и головоломки Perl Павел Власов 10
  11. 11. 7. Хэши и оператор (smartmatching)my %hash1 = (one => 1, two => 2);my %hash2 = (one => 1, two => 3);say ‘верно!’ if %hash1 ~~ %hash2;Особенности и головоломки Perl Павел Власов 11
  12. 12. 8. Модуль Data::Printer• use Data::Printer• легко использовать p($object)• подсветка структуры• настройка фильтровОсобенности и головоломки Perl Павел Власов 12
  13. 13. 8. Модуль Data::Printer примерОсобенности и головоломки Perl Павел Власов 13
  14. 14. 9. Удобный модуль local::lib• Управление модулями без привилегий root• Устанавливаем local::lib$perl -Mlocal::lib -MCPAN -eshell$perl -Mlocal::lib your_script.plОсобенности и головоломки Perl Павел Власов 14
  15. 15. 10. perlbrew Не нужно привилегий sudo Использование различных версий Perl Легкое переключение между версиями$ perbrew install perl-5.14.2$ perbrew switch perl-5.14.2$ perlbrew exec myprogram.plwww.perlbrew.plОсобенности и головоломки Perl Павел Власов 15
  16. 16. Использованные ресурсы• www.effectiveperlprogramming.com• www.perl-buzz.org• www.perlhacks.org• www.perlbrew.pl• www.modernperlbooks.comОсобенности и головоломки Perl Павел Власов 16
  17. 17. Спасибо за внимание!paul.vlasov@gmail.comОсобенности и головоломки Perl Павел Власов 17

×