SlideShare a Scribd company logo
Perl 5.16 new features




Perl Mova              Kiev, Ukraine


       Pavel Vlasov, 2012
Content

1.Perl 5.16 coming
2.Unicode features
3.Other features
4.New documentation
5.Performance
1. Perl 5.16 coming

• Development of Perl 5 (1994 – now)
  - 18 years

• Release date of Perl 5.16
  - 16 may 2012 (in next few days)
1. Perl 5.16 coming

• Perl 5.14 – 14 may 2011
• Perl 5.16 – 16 may 2012
…....
• Perl 5.30 – 30 may 2026
• Perl 5.32 - ?????
2. Unicode features


 •   fc (fold case)
 •   quotameta
 •   unicode_eval
 •   evalbytes
2. Fold case
• Compare strings non-unicode
uc($string1) eq = uc($string2)

$string1 = ‘A’; $string2 = ‘a’;
uc(‘A’) = A     uc(‘a) =A
Result: OK


$string1 = ‘ß’;
uc(‘ß’) = ‘SS’

It’s NOT OK
2. Fold case

• Compare strings in unicode

  use feature ‘fc’;
  fc($unicode1) eq fc($unicode2)

• Use casefolding
• inside a double-quoting string - "F$variable"
2. quotameta

• In Perl 5.16 adopted a Unicode-defined strategy for quoting
  non-ASCII characters

  my $string = ‘Perl May 2011 in Moscow';
  my $substr = ‘May.*?Moscow';
  $string =~ s{Q$substrE}{Mova 2012 in Kiev};

• Or:

  use feature ‘unicode_strings’;
  my $string = ‘Perl May 2011 in Moscow';
  my $substr = ‘May.*?Moscow';
  my $quoted_substr = quotemeta($substr);
  $string =~ s{$quoted_substr}{Mova 2012 in Kiev};
2. unicode_eval, evalbytes

unicode_eval default feature of Perl 5.16
   eval – evaluate string of characters

evalbytes – die if the string contains any
  characters outside the 8-bit range
3. Other features

•   current sub __SUB__
•   CORE namespace
•   array base
•   debugger
3. Current sub

• current_sub (__SUB__) - reference to the current
  subroutine or undef outside of subroutine
• easier to write recursive closures.

use feature ‘current_sub’;
sub closure {
  my $init = shift;

    return sub {
        state $counter = $init;
        return if $counter++ > 10;
        __SUB__->();
    }
}
3. CORE Namespace

• Namespace for Perl’s core routines
• Give access to the original built-in of Perl

use v5.16;
   or
use feature ‘say’;
   or
CORE::say “yes”;
3. array base

• special variable for array base
• The 'array_base' feature replace variable $[
• $[ affected also string not only arrays

use feature ‘array_base’;
$[ = 1;
3. debugger


• Tracing mode (t command) accept number of
  subroutine for trace

• Breakpoints with file names
$ b [file]:[line] [condition]
$ b lib/MyModule.pm:237 $x > 30
4. New documentation

•   perldtrace
•   perlexperiment
•   perlootut
•   perlxstypemap
5. Performance

 Improved performance for Unicode
 properties in regexp
 local $_ is faster now



 More? perl5160delta.pod
Used resources


• Perl5160delta.pod
• www.effectiveperlprogramming.com
• Mailing list of p5p
Thank you for attention!

paul.vlasov@gmail.com

More Related Content

What's hot

Perl one liners
Perl one linersPerl one liners
Perl one liners
Shaun Griffith
 
Perl one-liners
Perl one-linersPerl one-liners
Perl one-liners
daoswald
 
Runtime Symbol Resolution
Runtime Symbol ResolutionRuntime Symbol Resolution
Runtime Symbol Resolution
Ken Kawamoto
 
Java 8 - project lambda
Java 8 - project lambdaJava 8 - project lambda
Java 8 - project lambda
Ivar Østhus
 
Elements of C++11
Elements of C++11Elements of C++11
Elements of C++11
Uilian Ries
 
How Functions Work
How Functions WorkHow Functions Work
How Functions Work
Saumil Shah
 
Use of Apache Commons and Utilities
Use of Apache Commons and UtilitiesUse of Apache Commons and Utilities
Use of Apache Commons and Utilities
Pramod Kumar
 
c++ Lecture 3
c++ Lecture 3c++ Lecture 3
c++ Lecture 3
sajidpk92
 
Getting Started with PL/Proxy
Getting Started with PL/ProxyGetting Started with PL/Proxy
Getting Started with PL/Proxy
Peter Eisentraut
 
Introduction to Perl Programming
Introduction to Perl ProgrammingIntroduction to Perl Programming
Introduction to Perl Programming
Collaboration Technologies
 
Perl 5.10
Perl 5.10Perl 5.10
Perl 5.10
acme
 
Php engine
Php enginePhp engine
Php engine
julien pauli
 
02 - Second meetup
02 - Second meetup02 - Second meetup
02 - Second meetup
EdiPHP
 
The Ring programming language version 1.3 book - Part 60 of 88
The Ring programming language version 1.3 book - Part 60 of 88The Ring programming language version 1.3 book - Part 60 of 88
The Ring programming language version 1.3 book - Part 60 of 88
Mahmoud Samir Fayed
 
The Php Life Cycle
The Php Life CycleThe Php Life Cycle
The Php Life Cycle
Xinchen Hui
 
Php in 2013 (Web-5 2013 conference)
Php in 2013 (Web-5 2013 conference)Php in 2013 (Web-5 2013 conference)
Php in 2013 (Web-5 2013 conference)
julien pauli
 
Java Basics
Java BasicsJava Basics
Java Basics
Sunil OS
 
Clojure 7-Languages
Clojure 7-LanguagesClojure 7-Languages
Clojure 7-Languages
Pierre de Lacaze
 
The Ring programming language version 1.9 book - Part 101 of 210
The Ring programming language version 1.9 book - Part 101 of 210The Ring programming language version 1.9 book - Part 101 of 210
The Ring programming language version 1.9 book - Part 101 of 210
Mahmoud Samir Fayed
 
Unit 4
Unit 4Unit 4
Unit 4
siddr
 

What's hot (20)

Perl one liners
Perl one linersPerl one liners
Perl one liners
 
Perl one-liners
Perl one-linersPerl one-liners
Perl one-liners
 
Runtime Symbol Resolution
Runtime Symbol ResolutionRuntime Symbol Resolution
Runtime Symbol Resolution
 
Java 8 - project lambda
Java 8 - project lambdaJava 8 - project lambda
Java 8 - project lambda
 
Elements of C++11
Elements of C++11Elements of C++11
Elements of C++11
 
How Functions Work
How Functions WorkHow Functions Work
How Functions Work
 
Use of Apache Commons and Utilities
Use of Apache Commons and UtilitiesUse of Apache Commons and Utilities
Use of Apache Commons and Utilities
 
c++ Lecture 3
c++ Lecture 3c++ Lecture 3
c++ Lecture 3
 
Getting Started with PL/Proxy
Getting Started with PL/ProxyGetting Started with PL/Proxy
Getting Started with PL/Proxy
 
Introduction to Perl Programming
Introduction to Perl ProgrammingIntroduction to Perl Programming
Introduction to Perl Programming
 
Perl 5.10
Perl 5.10Perl 5.10
Perl 5.10
 
Php engine
Php enginePhp engine
Php engine
 
02 - Second meetup
02 - Second meetup02 - Second meetup
02 - Second meetup
 
The Ring programming language version 1.3 book - Part 60 of 88
The Ring programming language version 1.3 book - Part 60 of 88The Ring programming language version 1.3 book - Part 60 of 88
The Ring programming language version 1.3 book - Part 60 of 88
 
The Php Life Cycle
The Php Life CycleThe Php Life Cycle
The Php Life Cycle
 
Php in 2013 (Web-5 2013 conference)
Php in 2013 (Web-5 2013 conference)Php in 2013 (Web-5 2013 conference)
Php in 2013 (Web-5 2013 conference)
 
Java Basics
Java BasicsJava Basics
Java Basics
 
Clojure 7-Languages
Clojure 7-LanguagesClojure 7-Languages
Clojure 7-Languages
 
The Ring programming language version 1.9 book - Part 101 of 210
The Ring programming language version 1.9 book - Part 101 of 210The Ring programming language version 1.9 book - Part 101 of 210
The Ring programming language version 1.9 book - Part 101 of 210
 
Unit 4
Unit 4Unit 4
Unit 4
 

Viewers also liked

Un sencillo gesto con importantes consecuencias medio ambientales
Un sencillo gesto con importantes consecuencias medio ambientalesUn sencillo gesto con importantes consecuencias medio ambientales
Un sencillo gesto con importantes consecuencias medio ambientales
ecarbono18
 
Lesson 1
Lesson 1Lesson 1
Lesson 1
Rob Yale
 
プリントアウトのコストダウンのコツ《総務・経理の方へ》
プリントアウトのコストダウンのコツ《総務・経理の方へ》プリントアウトのコストダウンのコツ《総務・経理の方へ》
プリントアウトのコストダウンのコツ《総務・経理の方へ》吉田印刷所
 
Sqa sg sheet
Sqa sg sheetSqa sg sheet
Sqa sg sheet
nmcquade
 
Questions 4-7
Questions 4-7Questions 4-7
Questions 4-7
lauramas0n
 
The 'Client' Template - Illustrated!
The 'Client' Template - Illustrated!The 'Client' Template - Illustrated!
The 'Client' Template - Illustrated!
Randy Carey
 
Presentacion Informatica
Presentacion InformaticaPresentacion Informatica
Presentacion Informatica
Adolfo Momparler Martínez
 
環境・エコロジー担当の方へ「ムダな印刷物をなくす吉田印刷所の提案」
環境・エコロジー担当の方へ「ムダな印刷物をなくす吉田印刷所の提案」環境・エコロジー担当の方へ「ムダな印刷物をなくす吉田印刷所の提案」
環境・エコロジー担当の方へ「ムダな印刷物をなくす吉田印刷所の提案」吉田印刷所
 
Nofta postharvest financing project
Nofta postharvest financing projectNofta postharvest financing project
Nofta postharvest financing project
Asian People's Fund
 
Mans nākotnes novads2
Mans nākotnes  novads2Mans nākotnes  novads2
Mans nākotnes novads2egilsdo
 
Bullying
BullyingBullying
Bullying
jhanelay
 
Eidn 3-sinamob
Eidn 3-sinamobEidn 3-sinamob
Eidn 3-sinamob
liviacalmeida
 
Khmer culture, civilization (part4)
Khmer culture, civilization (part4)Khmer culture, civilization (part4)
Khmer culture, civilization (part4)
Mut Somoeun
 
We didn't watch tv
We didn't watch tvWe didn't watch tv
We didn't watch tv
bayasgalan_od
 
Bahan kuliah 1
Bahan kuliah 1 Bahan kuliah 1
Bahan kuliah 1
Sylvester Saragih
 
Ce este agenţia de ştiri
Ce este agenţia de ştiriCe este agenţia de ştiri
Ce este agenţia de ştiri
Lucia Andronic
 
Tesol summer institute 2014 giving student feedback
Tesol summer institute 2014  giving student feedbackTesol summer institute 2014  giving student feedback
Tesol summer institute 2014 giving student feedback
Telly J Hajny
 
191 195
191 195191 195
191 195
Latif Ahmad
 
3INVESTONLINE.COM
3INVESTONLINE.COM3INVESTONLINE.COM
3INVESTONLINE.COM
threeinvest
 
Pašv sad saldus_101111
Pašv sad saldus_101111Pašv sad saldus_101111
Pašv sad saldus_101111egilsdo
 

Viewers also liked (20)

Un sencillo gesto con importantes consecuencias medio ambientales
Un sencillo gesto con importantes consecuencias medio ambientalesUn sencillo gesto con importantes consecuencias medio ambientales
Un sencillo gesto con importantes consecuencias medio ambientales
 
Lesson 1
Lesson 1Lesson 1
Lesson 1
 
プリントアウトのコストダウンのコツ《総務・経理の方へ》
プリントアウトのコストダウンのコツ《総務・経理の方へ》プリントアウトのコストダウンのコツ《総務・経理の方へ》
プリントアウトのコストダウンのコツ《総務・経理の方へ》
 
Sqa sg sheet
Sqa sg sheetSqa sg sheet
Sqa sg sheet
 
Questions 4-7
Questions 4-7Questions 4-7
Questions 4-7
 
The 'Client' Template - Illustrated!
The 'Client' Template - Illustrated!The 'Client' Template - Illustrated!
The 'Client' Template - Illustrated!
 
Presentacion Informatica
Presentacion InformaticaPresentacion Informatica
Presentacion Informatica
 
環境・エコロジー担当の方へ「ムダな印刷物をなくす吉田印刷所の提案」
環境・エコロジー担当の方へ「ムダな印刷物をなくす吉田印刷所の提案」環境・エコロジー担当の方へ「ムダな印刷物をなくす吉田印刷所の提案」
環境・エコロジー担当の方へ「ムダな印刷物をなくす吉田印刷所の提案」
 
Nofta postharvest financing project
Nofta postharvest financing projectNofta postharvest financing project
Nofta postharvest financing project
 
Mans nākotnes novads2
Mans nākotnes  novads2Mans nākotnes  novads2
Mans nākotnes novads2
 
Bullying
BullyingBullying
Bullying
 
Eidn 3-sinamob
Eidn 3-sinamobEidn 3-sinamob
Eidn 3-sinamob
 
Khmer culture, civilization (part4)
Khmer culture, civilization (part4)Khmer culture, civilization (part4)
Khmer culture, civilization (part4)
 
We didn't watch tv
We didn't watch tvWe didn't watch tv
We didn't watch tv
 
Bahan kuliah 1
Bahan kuliah 1 Bahan kuliah 1
Bahan kuliah 1
 
Ce este agenţia de ştiri
Ce este agenţia de ştiriCe este agenţia de ştiri
Ce este agenţia de ştiri
 
Tesol summer institute 2014 giving student feedback
Tesol summer institute 2014  giving student feedbackTesol summer institute 2014  giving student feedback
Tesol summer institute 2014 giving student feedback
 
191 195
191 195191 195
191 195
 
3INVESTONLINE.COM
3INVESTONLINE.COM3INVESTONLINE.COM
3INVESTONLINE.COM
 
Pašv sad saldus_101111
Pašv sad saldus_101111Pašv sad saldus_101111
Pašv sad saldus_101111
 

Similar to Perl 5.16 new features

Syntax
SyntaxSyntax
Php basics
Php basicsPhp basics
Php basics
hamfu
 
Static or Dynamic Typing? Why not both?
Static or Dynamic Typing? Why not both?Static or Dynamic Typing? Why not both?
Static or Dynamic Typing? Why not both?
Mario Camou Riveroll
 
Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010
Michelangelo van Dam
 
Swift, functional programming, and the future of Objective-C
Swift, functional programming, and the future of Objective-CSwift, functional programming, and the future of Objective-C
Swift, functional programming, and the future of Objective-C
Alexis Gallagher
 
Whatsnew in-perl
Whatsnew in-perlWhatsnew in-perl
Whatsnew in-perl
daoswald
 
Modern Perl Catch-Up
Modern Perl Catch-UpModern Perl Catch-Up
Modern Perl Catch-Up
Dave Cross
 
Testing for Ops: Going Beyond the Manifest - PuppetConf 2013
Testing for Ops: Going Beyond the Manifest - PuppetConf 2013Testing for Ops: Going Beyond the Manifest - PuppetConf 2013
Testing for Ops: Going Beyond the Manifest - PuppetConf 2013
Puppet
 
Introduction in php
Introduction in phpIntroduction in php
Introduction in php
Bozhidar Boshnakov
 
Damien seguy php 5.6
Damien seguy php 5.6Damien seguy php 5.6
Damien seguy php 5.6
Damien Seguy
 
Slide
SlideSlide
The Ring programming language version 1.8 book - Part 96 of 202
The Ring programming language version 1.8 book - Part 96 of 202The Ring programming language version 1.8 book - Part 96 of 202
The Ring programming language version 1.8 book - Part 96 of 202
Mahmoud Samir Fayed
 
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner) Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
Puppet
 
Introducing perl6
Introducing perl6Introducing perl6
Introducing perl6
Nuno Carvalho
 
Ruby basics
Ruby basicsRuby basics
Ruby basics
Tushar Pal
 
Beyond java8
Beyond java8Beyond java8
Beyond java8
Muhammad Durrah
 
Introduction in php part 2
Introduction in php part 2Introduction in php part 2
Introduction in php part 2
Bozhidar Boshnakov
 
A Brief Intro to Scala
A Brief Intro to ScalaA Brief Intro to Scala
A Brief Intro to Scala
Tim Underwood
 
Practical approach to perl day1
Practical approach to perl day1Practical approach to perl day1
Practical approach to perl day1
Rakesh Mukundan
 
Elixir: the not-so-hidden path to Erlang
Elixir: the not-so-hidden path to ErlangElixir: the not-so-hidden path to Erlang
Elixir: the not-so-hidden path to Erlang
Laura M. Castro
 

Similar to Perl 5.16 new features (20)

Syntax
SyntaxSyntax
Syntax
 
Php basics
Php basicsPhp basics
Php basics
 
Static or Dynamic Typing? Why not both?
Static or Dynamic Typing? Why not both?Static or Dynamic Typing? Why not both?
Static or Dynamic Typing? Why not both?
 
Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010
 
Swift, functional programming, and the future of Objective-C
Swift, functional programming, and the future of Objective-CSwift, functional programming, and the future of Objective-C
Swift, functional programming, and the future of Objective-C
 
Whatsnew in-perl
Whatsnew in-perlWhatsnew in-perl
Whatsnew in-perl
 
Modern Perl Catch-Up
Modern Perl Catch-UpModern Perl Catch-Up
Modern Perl Catch-Up
 
Testing for Ops: Going Beyond the Manifest - PuppetConf 2013
Testing for Ops: Going Beyond the Manifest - PuppetConf 2013Testing for Ops: Going Beyond the Manifest - PuppetConf 2013
Testing for Ops: Going Beyond the Manifest - PuppetConf 2013
 
Introduction in php
Introduction in phpIntroduction in php
Introduction in php
 
Damien seguy php 5.6
Damien seguy php 5.6Damien seguy php 5.6
Damien seguy php 5.6
 
Slide
SlideSlide
Slide
 
The Ring programming language version 1.8 book - Part 96 of 202
The Ring programming language version 1.8 book - Part 96 of 202The Ring programming language version 1.8 book - Part 96 of 202
The Ring programming language version 1.8 book - Part 96 of 202
 
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner) Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
 
Introducing perl6
Introducing perl6Introducing perl6
Introducing perl6
 
Ruby basics
Ruby basicsRuby basics
Ruby basics
 
Beyond java8
Beyond java8Beyond java8
Beyond java8
 
Introduction in php part 2
Introduction in php part 2Introduction in php part 2
Introduction in php part 2
 
A Brief Intro to Scala
A Brief Intro to ScalaA Brief Intro to Scala
A Brief Intro to Scala
 
Practical approach to perl day1
Practical approach to perl day1Practical approach to perl day1
Practical approach to perl day1
 
Elixir: the not-so-hidden path to Erlang
Elixir: the not-so-hidden path to ErlangElixir: the not-so-hidden path to Erlang
Elixir: the not-so-hidden path to Erlang
 

Recently uploaded

Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
Techgropse Pvt.Ltd.
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Things to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUUThings to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUU
FODUU
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 

Recently uploaded (20)

Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Things to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUUThings to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUU
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 

Perl 5.16 new features

  • 1. Perl 5.16 new features Perl Mova Kiev, Ukraine Pavel Vlasov, 2012
  • 2. Content 1.Perl 5.16 coming 2.Unicode features 3.Other features 4.New documentation 5.Performance
  • 3. 1. Perl 5.16 coming • Development of Perl 5 (1994 – now) - 18 years • Release date of Perl 5.16 - 16 may 2012 (in next few days)
  • 4. 1. Perl 5.16 coming • Perl 5.14 – 14 may 2011 • Perl 5.16 – 16 may 2012 ….... • Perl 5.30 – 30 may 2026 • Perl 5.32 - ?????
  • 5. 2. Unicode features • fc (fold case) • quotameta • unicode_eval • evalbytes
  • 6. 2. Fold case • Compare strings non-unicode uc($string1) eq = uc($string2) $string1 = ‘A’; $string2 = ‘a’; uc(‘A’) = A uc(‘a) =A Result: OK $string1 = ‘ß’; uc(‘ß’) = ‘SS’ It’s NOT OK
  • 7. 2. Fold case • Compare strings in unicode use feature ‘fc’; fc($unicode1) eq fc($unicode2) • Use casefolding • inside a double-quoting string - "F$variable"
  • 8. 2. quotameta • In Perl 5.16 adopted a Unicode-defined strategy for quoting non-ASCII characters my $string = ‘Perl May 2011 in Moscow'; my $substr = ‘May.*?Moscow'; $string =~ s{Q$substrE}{Mova 2012 in Kiev}; • Or: use feature ‘unicode_strings’; my $string = ‘Perl May 2011 in Moscow'; my $substr = ‘May.*?Moscow'; my $quoted_substr = quotemeta($substr); $string =~ s{$quoted_substr}{Mova 2012 in Kiev};
  • 9. 2. unicode_eval, evalbytes unicode_eval default feature of Perl 5.16 eval – evaluate string of characters evalbytes – die if the string contains any characters outside the 8-bit range
  • 10. 3. Other features • current sub __SUB__ • CORE namespace • array base • debugger
  • 11. 3. Current sub • current_sub (__SUB__) - reference to the current subroutine or undef outside of subroutine • easier to write recursive closures. use feature ‘current_sub’; sub closure { my $init = shift; return sub { state $counter = $init; return if $counter++ > 10; __SUB__->(); } }
  • 12. 3. CORE Namespace • Namespace for Perl’s core routines • Give access to the original built-in of Perl use v5.16; or use feature ‘say’; or CORE::say “yes”;
  • 13. 3. array base • special variable for array base • The 'array_base' feature replace variable $[ • $[ affected also string not only arrays use feature ‘array_base’; $[ = 1;
  • 14. 3. debugger • Tracing mode (t command) accept number of subroutine for trace • Breakpoints with file names $ b [file]:[line] [condition] $ b lib/MyModule.pm:237 $x > 30
  • 15. 4. New documentation • perldtrace • perlexperiment • perlootut • perlxstypemap
  • 16. 5. Performance Improved performance for Unicode properties in regexp local $_ is faster now More? perl5160delta.pod
  • 17. Used resources • Perl5160delta.pod • www.effectiveperlprogramming.com • Mailing list of p5p
  • 18. Thank you for attention! paul.vlasov@gmail.com