SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Perl .

      Léon Brocard


London Perl Workshop
Me


 Léon Brocard
 French, live in London
 Like food
 Like the colour orange
 Founded Amsterdam.pm, Bath.pm, Croydon.pm
 Now leader of London.pm
 Started YAPC::Europe
 perl hacker
Releases


      -   -   Perl
      -   -   Perl
      -   -   Perl
      -   -   Perl
      -   -   Perl
  ...
  Perl is years old
  Perl is years old
Perl releases

     -   -   Perl
     -   -   Perl   .
     -   -   Perl   .
     -   -   Perl   .
     -   -   Perl   .
     -   -   Perl   .
     -   -   Perl   .   .
     -   -   Perl   .   .
     -   -   Perl   .       .
     -   -   Perl   .       .
Perl .   New features
Perl .     New feature



  use   feature ’say’;
  use   feature ’state’;
  use   feature ’switch’;
  ...
  use   feature ’:5.10’;
Say operator



  Just like print, but implicitly appends a newline
  use feature ’say’;
  say ’Hello!’;
State operator



  Persistent private variables
  use feature ’state’;
  sub gimme_another { state $x; return ++$x }
Smart match operator



  $a ~~   /foo/
  @a ~~   /foo/
  $a ~~   @b
  $a ~~   %b
  ...
Switch and smart match operator


  use feature ’switch’;
  given ($foo) {
    when (/^abc/) { $abc   = 1; }
    when (/^def/) { $def   = 1; }
    when (/^xyz/) { $xyz   = 1; }
    default { $nothing =   1; }
  }
Switch and smart match operator
  use feature ":5.10";
  given($foo) {
    when (undef) { say ’$foo is undefined’; }
    when ("foo") {
      say ’$foo is the string "foo"’;
    }
    when ([1,3,5,7,9]) {
      say ’$foo is an odd digit’;
      continue; # Fall through
    }
    when ($_ < 100) { say ’< 100’; }
    when (&complicated_check) {
      say ’a complicated check for $foo is true’;
    }
    default { die ’Eeeeek’; }
  }
De ned-or operator



  $a // $b
  defined $a ? $a : $b

  $c //= $d;
  $c = $d unless defined $c;
Regular expressions


  Recursive patterns
  Named capture bu ers
  Possessive quanti ers
  Backtracking control verbs
  Relative backreferences
  Vertical and horizontal whitespace, and linebreak
Named capture bu ers

  use feature ’say’;
  my $time = ’Time: 01:02:03’;

  if ($time =~ /Time:s(d+):(d+):(d+)/) {
    say "$1 / $2 / $3";
  }

  if ($time =~ /Time:s(?<hours>d+):
    (?<minutes>d+):(?<seconds>d+)/x) {
    say "$+{hours} / $+{minutes} / $+{seconds}";
  }
New modules

 Archive::Extract, Archive::Tar,
 Compress::Zlib, CPANPLUS, Digest::SHA,
 encoding::warnings, ExtUtils::CBuilder,
 ExtUtils::ParseXS, File::Fetch,
 Hash::Util::FieldHash, IO::Zlib, IPC::Cmd,
 Locale::Maketext::Simple, Log::Message,
 Log::Message::Simple, Math::BigInt::FastCalc,
 Module::Build, Module::CoreList, Module::Load,
 Module::Load::Conditional, Module::Loaded,
 Module::Pluggable, Object::Accessor,
 Package::Constants, Params::Check,
 Pod::Escapes, Pod::Simple, Term::UI,
 Time::Piece, Win32API::File.
New documentation


 perlpragma — How to write a user pragma
 perlglossary — Perl Glossary
 perlreguts — Regular expression engine internals
 perlreapi — Regular expression plugin interface
 perlunitut — Perl Unicode Tutorial
 perlunifaq — Perl Unicode FAQ
 perlcommunity — Overview of the Perl community
 CORE — Pseudo-namespace for Perl’s core routines
Performance enhancements

  In-place sorting
  Lexical array access
  XS-assisted SWASHGET
  Constant subroutines
  PERL_DONT_CREATE_GVSV
  Weak references are cheaper
  sort() enhancements
  Memory optimisations
  UTF- cache optimisation
  Sloppy stat on Windows
  Regular expressions optimisations
Deprecations



  Pseudo-hashes have been removed
  Removal of the bytecode compiler and of perlcc
  Removal of the JPL
Other

  Lexical $_, _ prototype, UNITCHECK blocks, mro pragma,
  readpipe() is now overridable, default argument for
  readline(), UNIVERSAL::DOES(), formats, byte-order
  modi ers for pack() and unpack(), no VERSION,
  chdir, chmod, chown on lehandles, OS groups, recursive
  sort subs, exceptions in constant folding, source lters in @INC,
  new internal variables, UCD . . , Miscellaneous Attribute
  Decoration, con guration improvements, compilation
  improvements, relocatable installations, nicer internals
  bison-based parser . . .
Perl . .




  Many bug xes: @_
  Optimised internals: isa()
New features, modules



  DTrace support
  autodie
  Compress::Raw::Bzip
  parent
  Parse::CPAN::Meta
Platform updates

  AIX
  Cygwin
  FreeBSD
  Irix
  Haiku
  MirOS BSD
  NetBSD
  Stratus VOS
  Symbian
  Win
  VMS
Feature tweaks



  given/when
  switch
  smart match
Deprecations




  Switch
  suidperl
Internal changes




  Moved from Perforce to Git
  Changed directory structure
Better quotes




     e J.R.R. Tolkien quotes at the head of each C source
   le have been checked and proper citations added
More tests


  Perl    .     ,     core tests
  (+     ,      more for bundled libraries)
  Perl    . .       ,    core tests
  (+        ,     more for bundled libraries)
  Perl    . .      ,    core tests
  (+        ,   more for bundled libraries)
Recent past and future


  Perl   .   .   : Léon Brocard on Nov ,
  Perl   .   .   : Jesse Vincent on Dec ,
  Perl   .   .   : Ricardo Signes on Jan ,
  Perl   .   .   : Steve Hay on Feb ,
  Perl   .   .   : Ask Bjørn Hansen on Mar   ,
  ...
  Perl   . : Jesse Vincent early
Use Perl .         now!



  Perl   .   is faster
  Perl   .   uses less memory
  Perl   .   has more features
  Perl   .   is backwards compatible

Weitere ähnliche Inhalte

Was ist angesagt?

I, For One, Welcome Our New Perl6 Overlords
I, For One, Welcome Our New Perl6 OverlordsI, For One, Welcome Our New Perl6 Overlords
I, For One, Welcome Our New Perl6 Overlordsheumann
 
2010/7/31 LTの虎@LL Tiger
2010/7/31 LTの虎@LL Tiger2010/7/31 LTの虎@LL Tiger
2010/7/31 LTの虎@LL TigerAkihiro Okuno
 
Nigel hamilton-megameet-2013
Nigel hamilton-megameet-2013Nigel hamilton-megameet-2013
Nigel hamilton-megameet-2013trexy
 
plackdo, plack-like web interface on perl6
plackdo, plack-like web interface on perl6plackdo, plack-like web interface on perl6
plackdo, plack-like web interface on perl6Nobuo Danjou
 
Whatsnew in-perl
Whatsnew in-perlWhatsnew in-perl
Whatsnew in-perldaoswald
 
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
 
Yapc::NA::2009 - Command Line Perl
Yapc::NA::2009 - Command Line PerlYapc::NA::2009 - Command Line Perl
Yapc::NA::2009 - Command Line PerlBruce Gray
 
What's new in Perl 5.10?
What's new in Perl 5.10?What's new in Perl 5.10?
What's new in Perl 5.10?acme
 
The $path to knowledge: What little it take to unit-test Perl.
The $path to knowledge: What little it take to unit-test Perl.The $path to knowledge: What little it take to unit-test Perl.
The $path to knowledge: What little it take to unit-test Perl.Workhorse Computing
 
Perl 6 in Context
Perl 6 in ContextPerl 6 in Context
Perl 6 in Contextlichtkind
 
Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)Kang-min Liu
 
Keeping objects healthy with Object::Exercise.
Keeping objects healthy with Object::Exercise.Keeping objects healthy with Object::Exercise.
Keeping objects healthy with Object::Exercise.Workhorse Computing
 
Object Trampoline: Why having not the object you want is what you need.
Object Trampoline: Why having not the object you want is what you need.Object Trampoline: Why having not the object you want is what you need.
Object Trampoline: Why having not the object you want is what you need.Workhorse Computing
 
Vim Script Programming
Vim Script ProgrammingVim Script Programming
Vim Script ProgrammingLin Yo-An
 
PHP Tips for certification - OdW13
PHP Tips for certification - OdW13PHP Tips for certification - OdW13
PHP Tips for certification - OdW13julien pauli
 
Create your own PHP extension, step by step - phpDay 2012 Verona
Create your own PHP extension, step by step - phpDay 2012 VeronaCreate your own PHP extension, step by step - phpDay 2012 Verona
Create your own PHP extension, step by step - phpDay 2012 VeronaPatrick Allaert
 

Was ist angesagt? (20)

I, For One, Welcome Our New Perl6 Overlords
I, For One, Welcome Our New Perl6 OverlordsI, For One, Welcome Our New Perl6 Overlords
I, For One, Welcome Our New Perl6 Overlords
 
2010/7/31 LTの虎@LL Tiger
2010/7/31 LTの虎@LL Tiger2010/7/31 LTの虎@LL Tiger
2010/7/31 LTの虎@LL Tiger
 
Metadata-driven Testing
Metadata-driven TestingMetadata-driven Testing
Metadata-driven Testing
 
Nigel hamilton-megameet-2013
Nigel hamilton-megameet-2013Nigel hamilton-megameet-2013
Nigel hamilton-megameet-2013
 
plackdo, plack-like web interface on perl6
plackdo, plack-like web interface on perl6plackdo, plack-like web interface on perl6
plackdo, plack-like web interface on perl6
 
Whatsnew in-perl
Whatsnew in-perlWhatsnew in-perl
Whatsnew in-perl
 
Get your teeth into Plack
Get your teeth into PlackGet your teeth into Plack
Get your teeth into Plack
 
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)
 
Yapc::NA::2009 - Command Line Perl
Yapc::NA::2009 - Command Line PerlYapc::NA::2009 - Command Line Perl
Yapc::NA::2009 - Command Line Perl
 
Perl Basics for Pentesters Part 1
Perl Basics for Pentesters Part 1Perl Basics for Pentesters Part 1
Perl Basics for Pentesters Part 1
 
What's new in Perl 5.10?
What's new in Perl 5.10?What's new in Perl 5.10?
What's new in Perl 5.10?
 
The $path to knowledge: What little it take to unit-test Perl.
The $path to knowledge: What little it take to unit-test Perl.The $path to knowledge: What little it take to unit-test Perl.
The $path to knowledge: What little it take to unit-test Perl.
 
Perl 6 in Context
Perl 6 in ContextPerl 6 in Context
Perl 6 in Context
 
Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)
 
Keeping objects healthy with Object::Exercise.
Keeping objects healthy with Object::Exercise.Keeping objects healthy with Object::Exercise.
Keeping objects healthy with Object::Exercise.
 
Perl basics for pentesters part 2
Perl basics for pentesters part 2Perl basics for pentesters part 2
Perl basics for pentesters part 2
 
Object Trampoline: Why having not the object you want is what you need.
Object Trampoline: Why having not the object you want is what you need.Object Trampoline: Why having not the object you want is what you need.
Object Trampoline: Why having not the object you want is what you need.
 
Vim Script Programming
Vim Script ProgrammingVim Script Programming
Vim Script Programming
 
PHP Tips for certification - OdW13
PHP Tips for certification - OdW13PHP Tips for certification - OdW13
PHP Tips for certification - OdW13
 
Create your own PHP extension, step by step - phpDay 2012 Verona
Create your own PHP extension, step by step - phpDay 2012 VeronaCreate your own PHP extension, step by step - phpDay 2012 Verona
Create your own PHP extension, step by step - phpDay 2012 Verona
 

Andere mochten auch

Competence structures and portfolio tools
Competence structures and portfolio toolsCompetence structures and portfolio tools
Competence structures and portfolio toolsSimon Grant
 
Lemill
LemillLemill
Lemillterje1
 
Independent Mobile Portal Solution
Independent Mobile Portal SolutionIndependent Mobile Portal Solution
Independent Mobile Portal SolutionLatte Media
 
Being connected is the new rock'n roll
Being connected is the new rock'n rollBeing connected is the new rock'n roll
Being connected is the new rock'n rollOyvind Solstad
 
Hvordan bruker du QR-koder smart?
Hvordan bruker du QR-koder smart?Hvordan bruker du QR-koder smart?
Hvordan bruker du QR-koder smart?Oyvind Solstad
 
Flowers! Lots of them!
Flowers! Lots of them!Flowers! Lots of them!
Flowers! Lots of them!kalpik
 
Mashups - webforum 2009 (Øyvind Solstad)
Mashups - webforum 2009 (Øyvind Solstad)Mashups - webforum 2009 (Øyvind Solstad)
Mashups - webforum 2009 (Øyvind Solstad)Oyvind Solstad
 
Cohousing: balancing environmental and social sustainability?
Cohousing: balancing environmental and social sustainability?Cohousing: balancing environmental and social sustainability?
Cohousing: balancing environmental and social sustainability?Simon Grant
 
Living in the cloud
Living in the cloudLiving in the cloud
Living in the cloudacme
 
Cumhurbaşkanı Seçmek
Cumhurbaşkanı SeçmekCumhurbaşkanı Seçmek
Cumhurbaşkanı Seçmekmillitrk
 
太平天國專題報告 – Week 1 version 1001
太平天國專題報告 – Week 1 version 1001太平天國專題報告 – Week 1 version 1001
太平天國專題報告 – Week 1 version 1001Yi-Chi Tang
 
Deprivileging The Digital
Deprivileging The DigitalDeprivileging The Digital
Deprivileging The DigitalTony McNeill
 

Andere mochten auch (20)

Competence structures and portfolio tools
Competence structures and portfolio toolsCompetence structures and portfolio tools
Competence structures and portfolio tools
 
Camino del hotel
Camino del hotelCamino del hotel
Camino del hotel
 
Lemill
LemillLemill
Lemill
 
Independent Mobile Portal Solution
Independent Mobile Portal SolutionIndependent Mobile Portal Solution
Independent Mobile Portal Solution
 
Being connected is the new rock'n roll
Being connected is the new rock'n rollBeing connected is the new rock'n roll
Being connected is the new rock'n roll
 
Cases for IPTV
Cases for IPTVCases for IPTV
Cases for IPTV
 
Hvordan bruker du QR-koder smart?
Hvordan bruker du QR-koder smart?Hvordan bruker du QR-koder smart?
Hvordan bruker du QR-koder smart?
 
Flowers! Lots of them!
Flowers! Lots of them!Flowers! Lots of them!
Flowers! Lots of them!
 
Open Standards
Open StandardsOpen Standards
Open Standards
 
Nevada
NevadaNevada
Nevada
 
Mashups - webforum 2009 (Øyvind Solstad)
Mashups - webforum 2009 (Øyvind Solstad)Mashups - webforum 2009 (Øyvind Solstad)
Mashups - webforum 2009 (Øyvind Solstad)
 
Cohousing: balancing environmental and social sustainability?
Cohousing: balancing environmental and social sustainability?Cohousing: balancing environmental and social sustainability?
Cohousing: balancing environmental and social sustainability?
 
Living in the cloud
Living in the cloudLiving in the cloud
Living in the cloud
 
Cumhurbaşkanı Seçmek
Cumhurbaşkanı SeçmekCumhurbaşkanı Seçmek
Cumhurbaşkanı Seçmek
 
PR30
PR30PR30
PR30
 
太平天國專題報告 – Week 1 version 1001
太平天國專題報告 – Week 1 version 1001太平天國專題報告 – Week 1 version 1001
太平天國專題報告 – Week 1 version 1001
 
Callejeando por la colina de San Jorge
Callejeando por la colina de San JorgeCallejeando por la colina de San Jorge
Callejeando por la colina de San Jorge
 
Deprivileging The Digital
Deprivileging The DigitalDeprivileging The Digital
Deprivileging The Digital
 
PARALLELEPIPED
PARALLELEPIPEDPARALLELEPIPED
PARALLELEPIPED
 
Morir Por La Piel
Morir Por La PielMorir Por La Piel
Morir Por La Piel
 

Ähnlich wie Perl 5.10

Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010Michelangelo van Dam
 
Introduction to Perl
Introduction to PerlIntroduction to Perl
Introduction to Perlworr1244
 
Zend Certification Preparation Tutorial
Zend Certification Preparation TutorialZend Certification Preparation Tutorial
Zend Certification Preparation TutorialLorna Mitchell
 
What's new in Perl 5.12?
What's new in Perl 5.12?What's new in Perl 5.12?
What's new in Perl 5.12?acme
 
Introduction to Modern Perl
Introduction to Modern PerlIntroduction to Modern Perl
Introduction to Modern PerlDave Cross
 
A Brief Intro to Scala
A Brief Intro to ScalaA Brief Intro to Scala
A Brief Intro to ScalaTim Underwood
 
You Can Do It! Start Using Perl to Handle Your Voyager Needs
You Can Do It! Start Using Perl to Handle Your Voyager NeedsYou Can Do It! Start Using Perl to Handle Your Voyager Needs
You Can Do It! Start Using Perl to Handle Your Voyager NeedsRoy Zimmer
 
name name2 n
name name2 nname name2 n
name name2 ncallroom
 
name name2 n
name name2 nname name2 n
name name2 ncallroom
 
name name2 n2.ppt
name name2 n2.pptname name2 n2.ppt
name name2 n2.pptcallroom
 
Ruby for Perl Programmers
Ruby for Perl ProgrammersRuby for Perl Programmers
Ruby for Perl Programmersamiable_indian
 

Ähnlich wie Perl 5.10 (20)

Perl basics for Pentesters
Perl basics for PentestersPerl basics for Pentesters
Perl basics for Pentesters
 
Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010Php Crash Course - Macq Electronique 2010
Php Crash Course - Macq Electronique 2010
 
Introduction to Perl
Introduction to PerlIntroduction to Perl
Introduction to Perl
 
Zend Certification Preparation Tutorial
Zend Certification Preparation TutorialZend Certification Preparation Tutorial
Zend Certification Preparation Tutorial
 
What's new in Perl 5.12?
What's new in Perl 5.12?What's new in Perl 5.12?
What's new in Perl 5.12?
 
Introduction to Modern Perl
Introduction to Modern PerlIntroduction to Modern Perl
Introduction to Modern Perl
 
A Brief Intro to Scala
A Brief Intro to ScalaA Brief Intro to Scala
A Brief Intro to Scala
 
Perl 101
Perl 101Perl 101
Perl 101
 
You Can Do It! Start Using Perl to Handle Your Voyager Needs
You Can Do It! Start Using Perl to Handle Your Voyager NeedsYou Can Do It! Start Using Perl to Handle Your Voyager Needs
You Can Do It! Start Using Perl to Handle Your Voyager Needs
 
ppt7
ppt7ppt7
ppt7
 
ppt2
ppt2ppt2
ppt2
 
name name2 n
name name2 nname name2 n
name name2 n
 
test ppt
test ppttest ppt
test ppt
 
name name2 n
name name2 nname name2 n
name name2 n
 
ppt17
ppt17ppt17
ppt17
 
ppt30
ppt30ppt30
ppt30
 
name name2 n2.ppt
name name2 n2.pptname name2 n2.ppt
name name2 n2.ppt
 
ppt18
ppt18ppt18
ppt18
 
Ruby for Perl Programmers
Ruby for Perl ProgrammersRuby for Perl Programmers
Ruby for Perl Programmers
 
ppt9
ppt9ppt9
ppt9
 

Mehr von acme

HTTP/1, HTTP/2 and HTTP/3
HTTP/1, HTTP/2 and HTTP/3HTTP/1, HTTP/2 and HTTP/3
HTTP/1, HTTP/2 and HTTP/3acme
 
Fallacies of distributed computing
Fallacies of distributed computingFallacies of distributed computing
Fallacies of distributed computingacme
 
How CPAN Testers helped me improve my module
How CPAN Testers helped me improve my moduleHow CPAN Testers helped me improve my module
How CPAN Testers helped me improve my moduleacme
 
What's new In Perl?
What's new In Perl?What's new In Perl?
What's new In Perl?acme
 
Fewer cables
Fewer cablesFewer cables
Fewer cablesacme
 
Ten modules I haven't yet talked about
Ten modules I haven't yet talked aboutTen modules I haven't yet talked about
Ten modules I haven't yet talked aboutacme
 
Searching CPAN Offline
Searching CPAN OfflineSearching CPAN Offline
Searching CPAN Offlineacme
 
Ten modules I haven't yet talked about
Ten modules I haven't yet talked aboutTen modules I haven't yet talked about
Ten modules I haven't yet talked aboutacme
 
Living In The Cloud
Living In The CloudLiving In The Cloud
Living In The Cloudacme
 
Scaling with memcached
Scaling with memcachedScaling with memcached
Scaling with memcachedacme
 

Mehr von acme (10)

HTTP/1, HTTP/2 and HTTP/3
HTTP/1, HTTP/2 and HTTP/3HTTP/1, HTTP/2 and HTTP/3
HTTP/1, HTTP/2 and HTTP/3
 
Fallacies of distributed computing
Fallacies of distributed computingFallacies of distributed computing
Fallacies of distributed computing
 
How CPAN Testers helped me improve my module
How CPAN Testers helped me improve my moduleHow CPAN Testers helped me improve my module
How CPAN Testers helped me improve my module
 
What's new In Perl?
What's new In Perl?What's new In Perl?
What's new In Perl?
 
Fewer cables
Fewer cablesFewer cables
Fewer cables
 
Ten modules I haven't yet talked about
Ten modules I haven't yet talked aboutTen modules I haven't yet talked about
Ten modules I haven't yet talked about
 
Searching CPAN Offline
Searching CPAN OfflineSearching CPAN Offline
Searching CPAN Offline
 
Ten modules I haven't yet talked about
Ten modules I haven't yet talked aboutTen modules I haven't yet talked about
Ten modules I haven't yet talked about
 
Living In The Cloud
Living In The CloudLiving In The Cloud
Living In The Cloud
 
Scaling with memcached
Scaling with memcachedScaling with memcached
Scaling with memcached
 

Kürzlich hochgeladen

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 

Kürzlich hochgeladen (20)

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 

Perl 5.10

  • 1. Perl . Léon Brocard London Perl Workshop
  • 2. Me Léon Brocard French, live in London Like food Like the colour orange Founded Amsterdam.pm, Bath.pm, Croydon.pm Now leader of London.pm Started YAPC::Europe perl hacker
  • 3. Releases - - Perl - - Perl - - Perl - - Perl - - Perl ... Perl is years old Perl is years old
  • 4. Perl releases - - Perl - - Perl . - - Perl . - - Perl . - - Perl . - - Perl . - - Perl . . - - Perl . . - - Perl . . - - Perl . .
  • 5. Perl . New features
  • 6. Perl . New feature use feature ’say’; use feature ’state’; use feature ’switch’; ... use feature ’:5.10’;
  • 7. Say operator Just like print, but implicitly appends a newline use feature ’say’; say ’Hello!’;
  • 8. State operator Persistent private variables use feature ’state’; sub gimme_another { state $x; return ++$x }
  • 9. Smart match operator $a ~~ /foo/ @a ~~ /foo/ $a ~~ @b $a ~~ %b ...
  • 10. Switch and smart match operator use feature ’switch’; given ($foo) { when (/^abc/) { $abc = 1; } when (/^def/) { $def = 1; } when (/^xyz/) { $xyz = 1; } default { $nothing = 1; } }
  • 11. Switch and smart match operator use feature ":5.10"; given($foo) { when (undef) { say ’$foo is undefined’; } when ("foo") { say ’$foo is the string "foo"’; } when ([1,3,5,7,9]) { say ’$foo is an odd digit’; continue; # Fall through } when ($_ < 100) { say ’< 100’; } when (&complicated_check) { say ’a complicated check for $foo is true’; } default { die ’Eeeeek’; } }
  • 12. De ned-or operator $a // $b defined $a ? $a : $b $c //= $d; $c = $d unless defined $c;
  • 13. Regular expressions Recursive patterns Named capture bu ers Possessive quanti ers Backtracking control verbs Relative backreferences Vertical and horizontal whitespace, and linebreak
  • 14. Named capture bu ers use feature ’say’; my $time = ’Time: 01:02:03’; if ($time =~ /Time:s(d+):(d+):(d+)/) { say "$1 / $2 / $3"; } if ($time =~ /Time:s(?<hours>d+): (?<minutes>d+):(?<seconds>d+)/x) { say "$+{hours} / $+{minutes} / $+{seconds}"; }
  • 15. New modules Archive::Extract, Archive::Tar, Compress::Zlib, CPANPLUS, Digest::SHA, encoding::warnings, ExtUtils::CBuilder, ExtUtils::ParseXS, File::Fetch, Hash::Util::FieldHash, IO::Zlib, IPC::Cmd, Locale::Maketext::Simple, Log::Message, Log::Message::Simple, Math::BigInt::FastCalc, Module::Build, Module::CoreList, Module::Load, Module::Load::Conditional, Module::Loaded, Module::Pluggable, Object::Accessor, Package::Constants, Params::Check, Pod::Escapes, Pod::Simple, Term::UI, Time::Piece, Win32API::File.
  • 16. New documentation perlpragma — How to write a user pragma perlglossary — Perl Glossary perlreguts — Regular expression engine internals perlreapi — Regular expression plugin interface perlunitut — Perl Unicode Tutorial perlunifaq — Perl Unicode FAQ perlcommunity — Overview of the Perl community CORE — Pseudo-namespace for Perl’s core routines
  • 17. Performance enhancements In-place sorting Lexical array access XS-assisted SWASHGET Constant subroutines PERL_DONT_CREATE_GVSV Weak references are cheaper sort() enhancements Memory optimisations UTF- cache optimisation Sloppy stat on Windows Regular expressions optimisations
  • 18. Deprecations Pseudo-hashes have been removed Removal of the bytecode compiler and of perlcc Removal of the JPL
  • 19. Other Lexical $_, _ prototype, UNITCHECK blocks, mro pragma, readpipe() is now overridable, default argument for readline(), UNIVERSAL::DOES(), formats, byte-order modi ers for pack() and unpack(), no VERSION, chdir, chmod, chown on lehandles, OS groups, recursive sort subs, exceptions in constant folding, source lters in @INC, new internal variables, UCD . . , Miscellaneous Attribute Decoration, con guration improvements, compilation improvements, relocatable installations, nicer internals bison-based parser . . .
  • 20. Perl . . Many bug xes: @_ Optimised internals: isa()
  • 21. New features, modules DTrace support autodie Compress::Raw::Bzip parent Parse::CPAN::Meta
  • 22. Platform updates AIX Cygwin FreeBSD Irix Haiku MirOS BSD NetBSD Stratus VOS Symbian Win VMS
  • 23. Feature tweaks given/when switch smart match
  • 25. Internal changes Moved from Perforce to Git Changed directory structure
  • 26. Better quotes e J.R.R. Tolkien quotes at the head of each C source le have been checked and proper citations added
  • 27. More tests Perl . , core tests (+ , more for bundled libraries) Perl . . , core tests (+ , more for bundled libraries) Perl . . , core tests (+ , more for bundled libraries)
  • 28. Recent past and future Perl . . : Léon Brocard on Nov , Perl . . : Jesse Vincent on Dec , Perl . . : Ricardo Signes on Jan , Perl . . : Steve Hay on Feb , Perl . . : Ask Bjørn Hansen on Mar , ... Perl . : Jesse Vincent early
  • 29. Use Perl . now! Perl . is faster Perl . uses less memory Perl . has more features Perl . is backwards compatible