SlideShare a Scribd company logo
1 of 15
Download to read offline
Perl 5, Version 13
David Golden
dagolden@cpan.org
www.dagolden.com
OSCON ▪ July 22, 2010
Perl 5, Version 13 development
 5.13.0 – Apr 20, 2010 – Leon Brocard
 5.13.1 – May 20, 2010 – Ricardo Signes
 5.13.2 – Jun 22, 2010 – Matt S. Trout
 5.13.3 – Jul 20, 2010 – David Golden
 5.13.4 – Aug ??, 2010 – Florian Ragwitz
Hardest part of releasing Perl 5?
 Writing the perldelta.
 Seriously. Ask anyone who has written one.
 Pumpkings have resigned rather than
writing the perldelta!*
* I'm kidding.
How did Jesse get to be Pumpking?
a) Throwing coffee mugs at a #p5p BOF
b) Given Excalibur by the Lady of the Lake
c) Volunteered to write 5.11 perldelta
d) Woke up with a hangover and an onion tattoo
How did Jesse get to be Pumpking?
a) Throwing coffee mugs
b) Given Excalibur by the Lady of the Lake
c) Volunteered to write 5.11 perldelta*
d) Woke up with a hangover and an onion tattoo
* Not really true
This talk is a perldeltadelta
 A summary of the summaries
 Stuff you might actually use
 Internal stuff you shouldn't ignore
Perl 5, Version 13, Subversion 0
 Faster shift without arguments
o my $self = shift; my $env = shift;
o 5% faster over shift(@_) on non-threaded perl
o 25% faster on threaded
 On linux, assigning to $0 sets process name
for ps, top, etc.
o $0 = "my-app-foo";
Perl 5, Version 13, Subversion 1
 given returns a value
# old way in 5.12
my $type;
given ($string) {
$type = undef when undef;
$type = 'digits' when /^d+$/;
$type = 'word' when /^w+$/;
$type = 'unknown';
};
Perl 5, Version 13, Subversion 1
 given returns a value (but must use do)
# new way in 5.13.1
my $type = do {
given ($string) {
break when undef;
'digits' when /^d+$/;
'word' when /^w+$/;
'unknown';
}
};
Perl 5, Version 13, Subversion 1
 Exceptions are less insane
o When an exception is thrown in an eval block,
$@ will not be clobbered exiting the eval
o Exceptions in DESTROY always warn, instead of
only sometimes warning
o Also, warn() takes objects just like die()
 Removed from core (available on CPAN)
o Class::ISA, Pod::Plainer, Switch
Perl 5, Version 13, Subversion 2
 Non-destructive substitution
(think 'r' for 'return')
@d = map { s/::/-/g; $_ } @m # 5.12
@d = map { s/::/-/gr } @m # 5.13.2
($new = $old) =~ s/cat/dog/; # 5.12
$new = $old =~ s/cat/dog/r; # 5.13.2
Perl 5, Version 13, Subversion 2
 package block syntax
{ package Foo; ... } # 5.12
package Foo { ... } # 5.13.2
{ package Foo 1.23; ... } # 5.12
package Foo 1.23 { ... } # 5.13.2
Perl 5, Version 13, Subversion 3
 New octal escape
o o{} similar to x{} and N{}
"033" # ESC (the old way)
"o{33}" # ESC (new for 5.13.3)
"o{23072}" # SMILEY (new for 5.13.3)
 Old octal escapes were insane
o "777" ne "0777"
o "023072" eq "023" . "072"
o qq{$stuff 10} # octal
o qr{$stuff 10} # octal OR backref
Perl 5, Version 13, Subversion 3
 N{NAME} understands abbreviations
"N{NBSP}" # N{NO-BREAK SPACE}
 Better documentation of all characters
escapes
 Dual-life modules synchronized with CPAN
Perl 5, Version 13 future
 "Contentious changes freeze" - 20 Dec 2010
 "User-visible changes freeze" - 20 Feb 2011
 "Hard freeze" - 30 Mar 2011
 "5.14 target release date" - 20 Apr 2011

More Related Content

More from David Golden

More from David Golden (17)

Slice Recycling Performance and Pitfalls
Slice Recycling Performance and PitfallsSlice Recycling Performance and Pitfalls
Slice Recycling Performance and Pitfalls
 
Free QA!
Free QA!Free QA!
Free QA!
 
Eversion 101: An Introduction to Inside-Out Objects
Eversion 101: An Introduction to Inside-Out ObjectsEversion 101: An Introduction to Inside-Out Objects
Eversion 101: An Introduction to Inside-Out Objects
 
IsTrue(true)?
IsTrue(true)?IsTrue(true)?
IsTrue(true)?
 
One BSON to Rule Them
One BSON to Rule ThemOne BSON to Rule Them
One BSON to Rule Them
 
Adventures in Optimization
Adventures in OptimizationAdventures in Optimization
Adventures in Optimization
 
Make Comments Stand Out
Make Comments Stand OutMake Comments Stand Out
Make Comments Stand Out
 
State of the Velociraptor Mini-Keynote: Perl Toolchain
State of the Velociraptor Mini-Keynote: Perl ToolchainState of the Velociraptor Mini-Keynote: Perl Toolchain
State of the Velociraptor Mini-Keynote: Perl Toolchain
 
Practical Consistency
Practical ConsistencyPractical Consistency
Practical Consistency
 
How I get to the ☞
How I get to the ☞How I get to the ☞
How I get to the ☞
 
Real World Optimization
Real World OptimizationReal World Optimization
Real World Optimization
 
Safer Chainsaw Juggling (Lightning Talk)
Safer Chainsaw Juggling (Lightning Talk)Safer Chainsaw Juggling (Lightning Talk)
Safer Chainsaw Juggling (Lightning Talk)
 
Taking Perl to Eleven with Higher-Order Functions
Taking Perl to Eleven with Higher-Order FunctionsTaking Perl to Eleven with Higher-Order Functions
Taking Perl to Eleven with Higher-Order Functions
 
Juggling Chainsaws: Perl and MongoDB
Juggling Chainsaws: Perl and MongoDBJuggling Chainsaws: Perl and MongoDB
Juggling Chainsaws: Perl and MongoDB
 
Cooking Perl with Chef: Real World Tutorial with Jitterbug
Cooking Perl with Chef: Real World Tutorial with JitterbugCooking Perl with Chef: Real World Tutorial with Jitterbug
Cooking Perl with Chef: Real World Tutorial with Jitterbug
 
Cooking Perl with Chef: Hello World Tutorial
Cooking Perl with Chef: Hello World TutorialCooking Perl with Chef: Hello World Tutorial
Cooking Perl with Chef: Hello World Tutorial
 
Cooking Perl with Chef
Cooking Perl with ChefCooking Perl with Chef
Cooking Perl with Chef
 

Recently uploaded

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Recently uploaded (20)

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 

Perl 5 Version 13

  • 1. Perl 5, Version 13 David Golden dagolden@cpan.org www.dagolden.com OSCON ▪ July 22, 2010
  • 2. Perl 5, Version 13 development  5.13.0 – Apr 20, 2010 – Leon Brocard  5.13.1 – May 20, 2010 – Ricardo Signes  5.13.2 – Jun 22, 2010 – Matt S. Trout  5.13.3 – Jul 20, 2010 – David Golden  5.13.4 – Aug ??, 2010 – Florian Ragwitz
  • 3. Hardest part of releasing Perl 5?  Writing the perldelta.  Seriously. Ask anyone who has written one.  Pumpkings have resigned rather than writing the perldelta!* * I'm kidding.
  • 4. How did Jesse get to be Pumpking? a) Throwing coffee mugs at a #p5p BOF b) Given Excalibur by the Lady of the Lake c) Volunteered to write 5.11 perldelta d) Woke up with a hangover and an onion tattoo
  • 5. How did Jesse get to be Pumpking? a) Throwing coffee mugs b) Given Excalibur by the Lady of the Lake c) Volunteered to write 5.11 perldelta* d) Woke up with a hangover and an onion tattoo * Not really true
  • 6. This talk is a perldeltadelta  A summary of the summaries  Stuff you might actually use  Internal stuff you shouldn't ignore
  • 7. Perl 5, Version 13, Subversion 0  Faster shift without arguments o my $self = shift; my $env = shift; o 5% faster over shift(@_) on non-threaded perl o 25% faster on threaded  On linux, assigning to $0 sets process name for ps, top, etc. o $0 = "my-app-foo";
  • 8. Perl 5, Version 13, Subversion 1  given returns a value # old way in 5.12 my $type; given ($string) { $type = undef when undef; $type = 'digits' when /^d+$/; $type = 'word' when /^w+$/; $type = 'unknown'; };
  • 9. Perl 5, Version 13, Subversion 1  given returns a value (but must use do) # new way in 5.13.1 my $type = do { given ($string) { break when undef; 'digits' when /^d+$/; 'word' when /^w+$/; 'unknown'; } };
  • 10. Perl 5, Version 13, Subversion 1  Exceptions are less insane o When an exception is thrown in an eval block, $@ will not be clobbered exiting the eval o Exceptions in DESTROY always warn, instead of only sometimes warning o Also, warn() takes objects just like die()  Removed from core (available on CPAN) o Class::ISA, Pod::Plainer, Switch
  • 11. Perl 5, Version 13, Subversion 2  Non-destructive substitution (think 'r' for 'return') @d = map { s/::/-/g; $_ } @m # 5.12 @d = map { s/::/-/gr } @m # 5.13.2 ($new = $old) =~ s/cat/dog/; # 5.12 $new = $old =~ s/cat/dog/r; # 5.13.2
  • 12. Perl 5, Version 13, Subversion 2  package block syntax { package Foo; ... } # 5.12 package Foo { ... } # 5.13.2 { package Foo 1.23; ... } # 5.12 package Foo 1.23 { ... } # 5.13.2
  • 13. Perl 5, Version 13, Subversion 3  New octal escape o o{} similar to x{} and N{} "033" # ESC (the old way) "o{33}" # ESC (new for 5.13.3) "o{23072}" # SMILEY (new for 5.13.3)  Old octal escapes were insane o "777" ne "0777" o "023072" eq "023" . "072" o qq{$stuff 10} # octal o qr{$stuff 10} # octal OR backref
  • 14. Perl 5, Version 13, Subversion 3  N{NAME} understands abbreviations "N{NBSP}" # N{NO-BREAK SPACE}  Better documentation of all characters escapes  Dual-life modules synchronized with CPAN
  • 15. Perl 5, Version 13 future  "Contentious changes freeze" - 20 Dec 2010  "User-visible changes freeze" - 20 Feb 2011  "Hard freeze" - 30 Mar 2011  "5.14 target release date" - 20 Apr 2011