Что нового в perl 5.14

137
Что нового в Perl 5.14

Upload: andysh

Post on 18-Nov-2014

6.282 views

Category:

Technology


2 download

DESCRIPTION

Обзор новых возможностей версии Perl 5.14

TRANSCRIPT

Page 1: Что нового в Perl 5.14

Что нового

в Perl 5.14

Page 2: Что нового в Perl 5.14

perldoc perlhist

Page 3: Что нового в Perl 5.14

5.10.02007−Dec−18

Page 4: Что нового в Perl 5.14

5.10 вышелна 20-летие языка

Page 5: Что нового в Perl 5.14

— Молодой человек, опрос!

¿Кто из вас пользуется версией >= 5.10?

Page 6: Что нового в Perl 5.14

Появился

say

Page 7: Что нового в Perl 5.14

¿Кто из вас

применяетsay

?

Page 8: Что нового в Perl 5.14

Шутки шутками, но

Page 9: Что нового в Perl 5.14

Началась новая история

Page 10: Что нового в Perl 5.14

Modern Perl

Page 11: Что нового в Perl 5.14

Modern Perl

Page 12: Что нового в Perl 5.14

ModernPerl

Page 13: Что нового в Perl 5.14

Понятие Modern Perlчасто переоценивают

Page 14: Что нового в Perl 5.14

На самом деле это не

Page 15: Что нового в Perl 5.14
Page 16: Что нового в Perl 5.14
Page 17: Что нового в Perl 5.14

Это была книга издания 2009 года

Page 18: Что нового в Perl 5.14

OK, смотрим дальшеperldoc perlhist

Page 19: Что нового в Perl 5.14

и пропускаем нечетные версии (5.11, 5.13) —

они dev dev dev

Page 20: Что нового в Perl 5.14
Page 21: Что нового в Perl 5.14

5.12.02010−Apr−12

Page 22: Что нового в Perl 5.14

¿Кто из вас пользуется версией >= 5.12?

— Как пройти на YAPC?

Page 23: Что нового в Perl 5.14

5.14.0RC12011−Apr−20

Page 24: Что нового в Perl 5.14

RC — эторелиз-кандидат

Page 25: Что нового в Perl 5.14

Потом

RC2

Page 26: Что нового в Perl 5.14

А потом

RC3

Page 27: Что нового в Perl 5.14

Не, Perl 6-то, конечно,

еще дольше

Page 28: Что нового в Perl 5.14

Perl 5.14 точно будет в этом году

Page 29: Что нового в Perl 5.14

Даже, может,на этой неделе

Page 30: Что нового в Perl 5.14

Что новогов Perl 5.14?

Page 31: Что нового в Perl 5.14

perldoc perldelta

Page 32: Что нового в Perl 5.14

perldelta = = 5.14 – 5.12

Page 33: Что нового в Perl 5.14

NoticeAs described in perlpolicy, the release of Perl 5.14.0 marks the official end of support for Perl 5.10. Users of Perl 5.10 or earlier should consider upgrading to a more recent release of Perl.

Page 34: Что нового в Perl 5.14

ПереводЧуваки, если вы еще на модном 5.10, то вы старперы.

Page 35: Что нового в Perl 5.14

Если серьезно,то обновиться

все-такине всегда просто

Page 36: Что нового в Perl 5.14

Особенно переустановить

все модули

Page 37: Что нового в Perl 5.14

Кто знает, как?

Page 38: Что нового в Perl 5.14

Новое

Page 39: Что нового в Perl 5.14

Синтаксис

1

Page 40: Что нового в Perl 5.14

Безопасность

2

Page 41: Что нового в Perl 5.14

Здесь вспоминается...

Page 42: Что нового в Perl 5.14

register_globals = off

В PHP начиная с 4.2.0

$_GET["sql"]

Page 43: Что нового в Perl 5.14

Перл и так безопасен

Page 44: Что нового в Perl 5.14

PHP —Perl на РусиАнатолий Шарифулин

Page 45: Что нового в Perl 5.14

Несовместимости!

3

Page 46: Что нового в Perl 5.14

Устаревшее

4

Page 47: Что нового в Perl 5.14

Производи-тельность

5

Page 48: Что нового в Perl 5.14

Модули и прагмы

6

Page 49: Что нового в Perl 5.14

Документация

7

Page 50: Что нового в Perl 5.14

Диагностика

8

Page 51: Что нового в Perl 5.14

Утилиты

9

Page 52: Что нового в Perl 5.14

Установка

10

Page 53: Что нового в Perl 5.14

Платформы

11

Page 54: Что нового в Perl 5.14

Внутренности

12

Page 55: Что нового в Perl 5.14

Багфиксы

13

Page 56: Что нового в Perl 5.14

Опечатки

14

Page 57: Что нового в Perl 5.14

Мы посмотримтолько на новый

синтаксиси регулярные

выражения

Page 58: Что нового в Perl 5.14

Велком,

Unicode 6.0!

Page 59: Что нового в Perl 5.14

(Так-то, пора бы и Welcome, Perl 6.0!)

Page 60: Что нового в Perl 5.14

Юникод сразу пролез в регексы

и строки

Page 61: Что нового в Perl 5.14

Это звоночек!

(Глупое маркетинговое слово)

Page 62: Что нового в Perl 5.14

ASCII-символBELL (0x7)

Page 63: Что нового в Perl 5.14

А в Unicode 6.0BELL — 0x1F514

Page 64: Что нового в Perl 5.14

Панико!

Page 65: Что нового в Perl 5.14

Perl спокоени мудр

Page 66: Что нового в Perl 5.14

Perl спокоени мудр

...наверное

Page 67: Что нового в Perl 5.14

В перле

BELL  =  0x0007

Page 68: Что нового в Perl 5.14

В перле

BELL  =  0x0007\N{BELL}  =  0x0007

Page 69: Что нового в Perl 5.14

В перле

BELL  =  0x0007\N{BELL}  =  0x00070x0007  =  ALERT

Page 70: Что нового в Perl 5.14

BELL  =  0x0007\N{BELL}  =  0x00070x0007  =  ALERTALERT  =  "\a"

Page 71: Что нового в Perl 5.14

BELL  =  0x0007\N{BELL}  =  0x00070x0007  =  ALERTALERT  =  "\a"

\N{BEL}  =  0x0007

Page 72: Что нового в Perl 5.14

BELL  =  0x0007\N{BELL}  =  0x00070x0007  =  ALERTALERT  =  "\a"

\N{BEL}  =  0x00070x1F514  —  без имени

Page 73: Что нового в Perl 5.14

BELL  =  0x0007\N{BELL}  =  0x00070x0007  =  ALERTALERT  =  "\a"

\N{BEL}  =  0x00070x1F514  —  без имени

0x1F514  =                \N{U+1F514}

Page 74: Что нового в Perl 5.14

ALERT  =  "\a"\N{BEL}  =  0x00070x1F514  —  без имени

0x1F514  =                \N{U+1F514}

Планы на Perl 5.16

\N{BELL}  =  0x1F514

Page 75: Что нового в Perl 5.14

0x1F514  —  без имени0x1F514  =                \N{U+1F514}

Планы на Perl 5.16

\N{BELL}  =  0x1F514

прежний \N{BELL}  заменить  \N{ALERT},  \N{BEL}  или  "\a"

Page 76: Что нового в Perl 5.14

use  feature  'unicode_strings';

Page 77: Что нового в Perl 5.14

С ней будет счастье

Page 78: Что нового в Perl 5.14

Все и вездеокажется

в юникоде

Page 79: Что нового в Perl 5.14

Чтобы включить новые возможности

Page 80: Что нового в Perl 5.14

use v5.14;

Page 81: Что нового в Perl 5.14

Заодно подключится и

use strict;

Page 82: Что нового в Perl 5.14

vector stringversion string

сокращенно — v-string

5.10.0v5.10.0v5.10

Page 83: Что нового в Perl 5.14
Page 84: Что нового в Perl 5.14

Новшествав регулярных выражениях

Page 85: Что нового в Perl 5.14

(?^  .  .  .)

Page 86: Что нового в Perl 5.14

Локально сбрасывает

все модификаторы

Page 87: Что нового в Perl 5.14

"ABC"  =~  /abc/i;

True

Page 88: Что нового в Perl 5.14

False

"ABC"  =~  /a(?^:b)c/i;

Page 89: Что нового в Perl 5.14

True

"ABC"  =~  /a(?^i:b)c/i;

Page 90: Что нового в Perl 5.14

Хитрое обоснование

Page 91: Что нового в Perl 5.14

$  perl5.14.0  -­‐MData::Dumper  -­‐E'my  $x  =  qr/abc/;  say  Dumper($x)'

$VAR1  =  qr/(?^u:abc)/;

Не изменится, когда появятся новые модификаторы

Page 92: Что нового в Perl 5.14

$  perl5.10.0  -­‐MData::Dumper  -­‐E'my  $x  =  qr/abc/;  say  Dumper($x)'

$VAR1  =  qr/(?-­‐xism:abc)/;

Изменится, когда появятся новые модификаторы

Page 93: Что нового в Perl 5.14

Новые модификаторы

Page 94: Что нового в Perl 5.14

/l==

use  locale;

Page 95: Что нового в Perl 5.14

/u==

use  feature  'unicode_strings';

Page 96: Что нового в Perl 5.14

/d~~

no  locale;no  feature  

'unicode_strings';

Page 97: Что нового в Perl 5.14

/d~~

no  locale;no  feature  

'unicode_strings';

по

умолчанию

Page 98: Что нового в Perl 5.14

/a

Page 99: Что нового в Perl 5.14

Сколькосимволов совпадет c?

/\d/

Page 100: Что нового в Perl 5.14

Сколькосимволов совпадет c?

/\d/

±420

Page 101: Что нового в Perl 5.14

for  (0x0  ..  0x10FFFF)  {        my  $char  =  chr($_);        say  $char                if  $char  =~  /^\d$/;}

Page 102: Что нового в Perl 5.14

С /\d/ совпадет все, что в юникоде

считается цифрой

Page 103: Что нового в Perl 5.14

0, 1, 2, 3, 4, 5, 6, 7, 8, 9,٠ ١, ٢, ٣, ٤, ٥, ٦, ٧, ٨, ٩, ੦,

੧, ੨, ੩, ੪, ੫, ੬, ੭, ੮, ੯, ૦, ૧,

૨, ૩, ૪, ૫, ૬, ૭, ૮, ૯, ௦, ௧, ௨,

௩, ௪, ௫, ௬, ௭, ௮, ௯, ...

Page 104: Что нового в Perl 5.14

\d стало причиной разногласий

и споров

Page 105: Что нового в Perl 5.14

Поведение /dстабильное,но спорное

d

Page 106: Что нового в Perl 5.14

/aВстречайте

Page 107: Что нового в Perl 5.14

for  (0x0  ..  0x10FFFF)  {        my  $char  =  chr($_);        say  $char                if  $char  =~  /^\d$/a;}

Page 108: Что нового в Perl 5.14

Совпадут только 10 символов из ASCII

$  perl  a1.pl  |  wc  -­‐l10

Page 109: Что нового в Perl 5.14

/a создаетASCII-версии

модификаторов\d, \s и \w

Page 110: Что нового в Perl 5.14

И влияет на поведение \b и \B

Page 111: Что нового в Perl 5.14

Модификатор /r

Page 112: Что нового в Perl 5.14

Non-destructive substitution

Page 113: Что нового в Perl 5.14

Подстановка,не изменяющая

оригинал

Page 114: Что нового в Perl 5.14

use  v5.14;

my  $version  =  "Perl  5.10";say  $version  =~  s/5\.10/5.14/r;  

Результат: Perl  5.14

Page 115: Что нового в Perl 5.14

my $old = "Погода в Ленинграде";my $new = $old =~ s/Ленинград/Санкт-Петербург/r;

Page 116: Что нового в Perl 5.14

Работас массивами

и хешами

Page 117: Что нового в Perl 5.14

Можно убратьвсе лишнее

Page 118: Что нового в Perl 5.14

Это экспериментальная

фича

Page 119: Что нового в Perl 5.14

use  v5.14;

my  $a  =  [];push  $a,  3,  5,  7;

Page 120: Что нового в Perl 5.14

use  v5.10;

my  $a  =  [];push  @$a,  3,  5,  7;

Page 121: Что нового в Perl 5.14

(Как @a[1] в Perl 6)

Page 122: Что нового в Perl 5.14

А также

Page 123: Что нового в Perl 5.14

push/pop  @$arrayref

push/pop  $arrayref

Page 124: Что нового в Perl 5.14

shift/unshift  @$arrayref

shift/unshift  $arrayref

Page 125: Что нового в Perl 5.14

splice  @$arrayref

splice  $arrayref

Page 126: Что нового в Perl 5.14

keys/values  %$hashref

keys/values  $hashref

Page 127: Что нового в Perl 5.14

keys/values  @$arrayref

keys/values  $arrayref

Page 128: Что нового в Perl 5.14

each  %$href  /  @$aref

each  $href  /  $aref

Page 129: Что нового в Perl 5.14

given возвращает последнее

вычисленное значение

Page 130: Что нового в Perl 5.14

say  mysub(7);

sub  mysub  {        given($_[0])  {              "мало"    when  3;              "ОК"        when  5;              "много"  when  7;              "?";        }}

Page 131: Что нового в Perl 5.14

(Для любителейне писать return)

Page 132: Что нового в Perl 5.14

Чей вклад?

Page 133: Что нового в Perl 5.14

Aaron Crane, Abhijit Menon-Sen, Abigail, Ævar Arnfjörð Bjarmason, Alastair Douglas, Alexander Alekseev, Alexander Hartmaier, Alexandr Ciornii, Alex Davies, Alex Vandiver, Ali Polatel, Allen Smith, Andreas König, Andrew Rodland, Andy Armstrong, Andy Dougherty, Aristotle Pagaltzis, Arkturuz, Arvan, A. Sinan Unur, Ben Morrow, Bo Lindbergh, Boris Ratner, Brad Gilbert, Bram, brian d foy, Brian Phillips, Casey West, Charles Bailey, Chas. Owens, Chip Salzenberg, Chris 'BinGOs' Williams, chromatic, Craig A. Berry, Curtis Jewell, Dagfinn Ilmari Mannsåker, Dan Dascalescu, Dave Rolsky, David Caldwell, David Cantrell, David Golden, David Leadbeater, David Mitchell, David Wheeler, Eric Brine, Father Chrysostomos, Fingle Nark, Florian Ragwitz, Frank Wiegand, Franz Fasching, Gene Sullivan, George Greer, Gerard Goossen, Gisle Aas, Goro Fuji, Grant McLean, gregor herrmann, H.Merijn Brand, Hongwen Qiu, Hugo van der Sanden, Ian Goodacre, James E Keenan, James Mastros, Jan Dubois, Jay Hannah, Jerry D. Hedden, Jesse Vincent, Jim Cromie, Jirka Hruška, John Peacock, Joshua ben Jore, Joshua Pritikin, Karl Williamson, Kevin Ryde, kmx, Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯, Larwan

Berke, Leon Brocard, Leon Timmermans, Lubomir Rintel, Lukas Mai, Maik Hentsche, Marty Pauley, Marvin Humphrey, Matt Johnson, Matt S Trout, Max Maischein, Michael Breen, Michael Fig, Michael G Schwern, Michael Parker, Michael Stevens, Michael Witten, Mike Kelly, Moritz Lenz, Nicholas Clark, Nick Cleaton, Nick Johnston, Nicolas Kaiser, Niko Tyni, Noirin Shirley, Nuno Carvalho, Paul Evans, Paul Green, Paul Johnson, Paul Marquess, Peter J. Holzer, Peter John Acklam, Peter Martini, Philippe Bruhat (BooK), Piotr Fusik, Rafael Garcia-Suarez, Rainer Tammer, Reini Urban, Renee Baecker, Ricardo Signes, Richard Möhn, Richard Soderberg, Rob Hoelz, Robin Barker, Ruslan Zakirov, Salvador Fandiño, Salvador Ortiz Garcia, Shlomi Fish, Sinan Unur, Sisyphus, Slaven Rezic, Steffen Müller, Steve Hay, Steven Schubiger, Steve Peters, Sullivan Beck, Tatsuhiko Miyagawa, Tim Bunce, Todd Rinaldo, Tom Christiansen, Tom Hukins, Tony Cook, Tye McQueen, Vadim Konovalov, Vernon Lyon, Vincent Pit, Walt Mankowski, Wolfram Humann, Yves Orton, Zefram и Zsbán Ambrus.

Page 134: Что нового в Perl 5.14

use v5.14 or die;

Page 135: Что нового в Perl 5.14

Или хотя бы

Page 136: Что нового в Perl 5.14

use v5.14 or v5.12 ;-)

Page 137: Что нового в Perl 5.14

__END__

Андрей Шитов [email protected]