SlideShare a Scribd company logo
1 of 128
Download to read offline
Modern Perl for the Unfrozen
Paleolithic Perl Programmer
John SJ Anderson ⭐ Infinity Interactive ⭐ @genehack
OpenWest 2016 ⭐ 14 July 2016 ⭐ Sandy UT
Disclaimer
I'mma talk pretty fast. Feel free to ask questions particularly if I'm moving too quickly
Hi Hi I'm John
• VP Tech, Infinity Interactive
• Ex-biologist
• Linux
• Perl tribe
• Polyglot coder
• Just this guy, you know?
meet me!
I'M JUST A CAVEMAN
YOUR MODERN PERL FRIGHTENS AND
CONFUSES ME
I was inspired to write this talk by a few online friends who happen to be Perl programmers -- but they're not engaged with the community, they're just using Perl to get a job done, and there's a widening gulf
between what I think is reasonable and what they're doing -- so I wanted to put together sort of an info dump to bring people up to speed. this talk is going to a wide-ranging survey of what's happened in
Perl in the last 5-10 years.
Welcome to
2016!
So, hi, unfrozen Paleolithic Perl programmer! Welcome to 2016!
Quite a few things
have changed...
Many things have changed since you fell into that glacier in 2001,
...but many
haven't
There's a Clinton
running for President!
One thing is different:
Perl6 was released!
but this talk is about perl5, so that's the last i'm going to talk about perl6
We're still using
Perl5!
Most of us are still happily coding in Perl5, however
2001
Perl 5.6
When you slipped into that big hole in the ice, perl 5.6 was the latest and greatest
2016
Perl 5.24
But we're all the way up to 5.24 now. So let's talk about that 15 year gap...
We had some
bad years
there was a rough patch
5.6.0 - 22 Mar 2000
5.8.0 - 18 Jul 2002
5.10.0 - 18 Dec 2007
5.12.0 - 12 April 2010
here's the release dates for several perl versions, starting with 5.6 (latest and greatest in 2001, remember)
5.6.0 - 22 Mar 2000
5.8.0 - 18 Jul 2002
5.10.0 - 18 Dec 2007
5.12.0 - 12 April 2010
see that five year gap there? yeah, those were not great times.
5.6.0 - 22 Mar 2000
5.8.0 - 18 Jul 2002
5.10.0 - 18 Dec 2007
5.12.0 - 12 April 2010
but, starting with 5.10, which sort of brought perl 5 back to life, and then particularly, since 5.12, we've had this great thing! ...
Regular
release
cycle
a regular, predictable release cycle!
5.12.0 - 12 April 2010
5.14.0 - 14 May 2011
5.16.0 - 20 May 2012
5.18.0 - 18 May 2013
5.20.0 - 27 May 2014
5.22.0 - 01 Jun 2015
5.24.0 - 09 May 2016
here are all the releases since 5.12. notice anything?
5.12.0 - 12 April 2010
5.14.0 - 14 May 2011
5.16.0 - 20 May 2012
5.18.0 - 18 May 2013
5.20.0 - 27 May 2014
5.22.0 - 01 Jun 2015
5.24.0 - 09 May 2016
see those nice regular predictable releases, happening every year like clockwork? that's pretty cool. 

underlying this is a regular series of dev releases (those are in odd numbered versions, e.g. 5.23 is the series of dev releases between 5.22 and 5.24), which happen on a
monthly cycle
Perl5
pumpking
credit for starting and more importantly continuing this goes to a couple of p5 pumpkings, which is what we call the person who is in charge of the Perl5 effort -- our
Benevolent Dictator for the Moment, if you will
5.12.0 - 12 April 2010
5.14.0 - 14 May 2011
5.16.0 - 20 May 2012
5.18.0 - 18 May 2013
5.20.0 - 27 May 2014
5.22.0 - 01 Jun 2015
5.24.0 - 09 May 2016
Jesse
Rik
there were two pumpkings involved in this, Jesse Vincent for 5.12 and 5.14, and then Rik Signes for 5.16 thru 5.24 (which just came out a few months ago)
Regular
release
cycle
getting back onto a regular predictable release cycle has arguably been the single greatest factor keeping Perl5 relevant and catalyzing the Perl "Renaissance" you may
be hearing about
❤ Jesse
❤ Rik
much respect to Jesse and Rik for the work involved in this, it was *not* a trivial undertaking to start or to keep going.
❤ Sawyer
this is also a good time to mention that Rik retired from the pumpking role after releasing 5.24.0, and our new pumpking is Sawyer. Sawyer is great and as you can see
from this picture, he *really* loves hugs, so be sure to give him one when you see him at a conference.
Modern
Perl

modernperlbooks.com
Another catalyst for the Perl Renaissance is the book "Modern Perl", written by chromatic. He has made this freely available online; you can also purchase a paper copy
if that's how you roll.
❤
chromatic

modernperlbooks.com
Writing this book was a tremendous effort and it's an absolutely essential read if you want to understand what we call "Modern Perl", or how we do Perl in the 21st
century.
Many
language
improvements
One of the main benefits of the regular release cycle has been a number of language improvements. I'm only going to talk about a few today, but you can always read the
'perldeltas', or change summaries that come out with each new release.
Unicode
support!
In 2001, the world of Perl 5.6, Unicode existed but wasn't very well understood or very widely used. Today, of course, we live in a Unicode world, and it's something all
programmers and languages have to deal with. It's kinda too complicated to get into here, so I'm just going to say that now we can get _really_ expressive in our Perl
code
$code = "😀";
So it's much easier to tell if we're happy...
$code = "💩";
... or when things aren't going quite as well.
This should be a familiar way of communication for you! 

(okay, this is my last caveman joke...)

Perl unicode support got _ok_ in 5.12, and got good in 5.14.
false values: 0, '', (	), undef
everything else is true
undefined values: undef
everything else is defined
Quick Perl background
Before I can explain this next one, I need to do a brief refresher on a couple of aspects of Perl. Perl has the usual notion of true/false. These four values are false;
everything else is true. 'undef' is a special value; it's what Perl gives to a newly declared but uninitialized variable. That means there's this additional dimension of
defined/undefined we have to deal with
Boolean operators (or, and)
look at truthiness.
Many times, only invalid value for something is
undef. So can't look at truthiness; must look
at definedness
Quick Perl background
Now, Perl's Boolean operations *only* look at true/false. They don't care about defined/undefined at all, except for how undef is false. 

But many times, you don't end up caring about true/false, you care about def/undef
if	(	defined($this)	)	{		
											$value	=	$this	
									}	
									else	{	
											$value	=	$that	
									}
So that leads to writing code that looks like this... *explain code*
$value	=	defined($this)	?	$this	:	$that
The more idiomatic way of writing that code is to use the ternary operator -- this just does the same thing as the previous slide in a more compact way
$value	=	$this	//	$that
defined-or
Now that I've given you that background, now I can explain this great new feature we got in 5.10, called 'defined-or'. It let's you write that code like so.

Which is pretty awesome. Defined-or was my favorite new perl feature of the 2000s
$this	//=	'default'	
#	much	like	this,	but…	
$this	||=	'default'
defined-or
You can also combine this with assignment, in much the same way you can say ||= for 'or equals'
my	$copy	=	$orig;	
		$copy	=~	s/swap/stuff/;	
Regular expressions are a big part of Perl programming, including substitution style regexps. If you want to apply a substitution to a variable but _not_ change your
original value, you need to do something like this - make a copy, then do the sub on the copy
(my	$copy	=	$orig)	=~	s/swap/stuff/;	
and this is just a more idiomatic way to do the same thing.
(my	$copy	=	$orig)	=~	s/swap/stuff/;	
this makes the copy (and the parens are *required*)...
(my	$copy	=	$orig)	=~	s/swap/stuff/;	
and then this applies the sub to the result of the left hand side, which means $copy gets changed and $orig is left unchanged
my	$copy	=	$orig	=~	s/swap/stuff/r;	
non-destructive s///
new in 5.14, we have a new way do this. don't need the parens. 

the key here is ...
my	$copy	=	$orig	=~	s/swap/stuff/r;	
non-destructive s///
this 'r' modifier to the regexp, which makes
my	$copy	=	$orig	=~	s/swap/stuff/r;	
non-destructive s///
this part return the result of applying the sub to $orig (hence, 'r' - for return)
my	$copy	=	$orig	=~	s/swap/stuff/r;	
non-destructive s///
and then we just assign that to $copy.

Again, new as of 5.15
dereferencing
@{	$arrayref	}
so, if you've ever worked with references in perl, you've probably done this. a reference is how perl does data abstraction, it's kinda like a pointer (only way safer). this is
how you turn a reference to an array back into the actual array
postfix
dereferencing
$arrayref->@*
New syntax for this -- not really *less* punctuation, but different punctuation. I'm not a huge fan, but some people (including former pumpking Rik Signes) really like this. 

We added postfix deref in 5.20; it became non-experimental in 5.24
double
diamond
<<>>
We also got something called the 'double diamond' operator in 5.22
diamond
<>
This is related to the classic 'diamond' operator, which is used when processing files that are passed as arguments on the command line
#	loop	over	files	from	command	line	
				while	(<>)	{	
						#	do	something	with	each	line	
				}	
				#	call	like	'script.pl	file1	file2	file3'		
using the diamond operator typically looks like this, you'll have a script with this while loop, and then call it with a bunch of files on the command line. this will loop over
the lines in file1, then file2, then file3, running the loop body for each one
problem!
<> uses 2-arg
open semantics!
the problem with this is <> uses 2 argument open(). why is that bad?
2-arg open
open(IN,	'<	file');	
this is what we call a 2 arg open call. we're opening a file, for reading, and attaching it to a file handle called IN
2-arg open
open(IN,	'<	file');	
this thing right here, in front of the file name, is how you want to open the file. this is open for reading.
2-arg open
open(IN,	'>	file');	
where as this is open for writing. (and if you wrote this code and called the file handle IN, we can't be friends.)

2 arg is bad, because if 'file' is actually in a variable, and somehow that variable gets a '>' or '<' or '|' in it, unexpected things happen
3-arg open
open($in,	'<',	'file');	
this is how we write that code these days, the three argument form. here the file name is just used literally, and if it gets one of those punctuation chars in it, you'll get an
error rather than a bad surprise
problem!
<> uses 2-arg
open semantics!
so, the problem is <> uses the 2-arg form...
Means that this:
script.pl	'>	file1'	
is gonna be a bad time
So doing something like this will open 'file1' for writing, clobbering whatever is there.
WHOOPS.
<<>> fixes this.
again, available as of 5.22
subroutine
signatures
Finally, and I think this is maybe _the_ biggest feature this decade, we've also recently gotten support for subroutine signatures in 5.20
sub	add	{	
								my	($one,	$two)	=	@_;	
								return	$one	+	$two;	
						}
this is how you might write a simple perl function to add together two numbers. the @_ is a special variable that's used to pass in the arguments for the function.
sub	add	{	
								my	($one,	$two)	=	@_;	
								return	$one	+	$two;	
						}
This bit in the first line is called "unpacking @_", and code like this is at the top of literally almost every Perl function *EVER*
sub	add	($one,	$two)	{	
								return	$one	+	$two;	
						}
this code does the exact same thing!
sub	add	($one,	$two)	{	
								return	$one	+	$two;	
						}
so we don't even have to unpack @_ ourselves! you can even provide default values, validate arguments in the function signature, and all sorts of crazy stuff 

Who has started using subroutine signatures? They're still experimental, but hopefully will be non-experimental in 5.26
new tools
It's not just language level features, we also have a host of new tools to make it easier to work with Perl
"system" perl:
These days, we make a distinction between the Perl that comes with your OS
"system" perl:
just say no
and encourage people not to use it for their development projects
/usr/bin/perl
Yes, that means good old /usr/bin/perl...
/usr/bin/perl
is no more. Instead, we use tools to install new Perls, outside the control of the OS
perlbrew
The first tool that was developed for this purpose is called Perlbrew
perlbrew.pl
which you can get at perlbrew.pl
plenv
there's also a newer option, plenv
https://github.com/tokuhirom/plenv
its website isn't quite as snazzy as perlbrew's
advantages
• Solves "vendor Perl lockin" issues
• Install multiple Perls in your home directory
• ... or elsewhere
• Trivially switch from Perl version to Perl version
• Able to install modules without special permissions
• Easy to stay up to date with Perl development
either one of these tools will give you numerous advantages over using the system perl
plenv > perlbrew
• Less magic messing around with $PATH
• Can "pin" Perl different ways: globally, per-shell, or per-directory
personally, i'm using plenv these days -- the ability to easily specify a Perl version for a particular project is particularly useful to me
perlbrew > plenv
• Kicka** website
speaking of installing...
we also have a few new tools that make installing and managing modules easier
local::lib
one of them is a module called local::lib
local::lib
• Install your own copies of modules
• In your $HOME (so no special permissions needed)
• Can also install per-project modules
• Integrates well with other tools
• Not going to go into how to make it work, but the docs are great!
❤ mst
originally developed by matt trout, so thanks matt
speaking of installation tools…
cpanminus
a/k/a
cpanm
We've got a new CPAN client these days, cpanminus
%	cpan	Git::Wrapper	
CPAN:	Storable	loaded	ok	(v2.54)	
Reading	'/Users/genehack/.cpan/Metadata'	
		Database	was	generated	on	Sat,	10	Oct	2015	01:17:02	GMT	
Running	install	for	module	'Git::Wrapper'	
CPAN:	LWP::UserAgent	loaded	ok	(v6.13)	
Fetching	with	LWP:	
http://cpan.schatt.com/authors/id/G/GE/GENEHACK/Git-Wrapper-0.045.tar.gz	
CPAN:	YAML	loaded	ok	(v1.15)	
CPAN:	Digest::SHA	loaded	ok	(v5.95)	
Fetching	with	LWP:	
http://cpan.schatt.com/authors/id/G/GE/GENEHACK/CHECKSUMS	
CPAN:	Compress::Zlib	loaded	ok	(v2.068)	
Checksum	for	/Users/genehack/.cpan/sources/authors/id/G/GE/GENEHACK/Git-Wrapper-0.045.tar.gz	ok	
tmp-47326	for	tmp-47326:	No	such	file	or	directory	at	/opt/plenv/versions/5.23.2/lib/perl5/5.23.2/CPAN/Distribution	
.pm	line	468.	
CPAN:	File::Temp	loaded	ok	(v0.2304)	
CPAN:	CPAN::Meta::Requirements	loaded	ok	(v2.133)	
CPAN:	Parse::CPAN::Meta	loaded	ok	(v1.4417)	
CPAN:	CPAN::Meta	loaded	ok	(v2.150005)	
CPAN:	Module::CoreList	loaded	ok	(v5.20150820)	
Configuring	G/GE/GENEHACK/Git-Wrapper-0.045.tar.gz	with	Makefile.PL	
Locating	bin:git...	found	at	/opt/git/bin/git.	
Checking	if	your	kit	is	complete...	
Looks	good	
Generating	a	Unix-style	Makefile	
Writing	Makefile	for	Git::Wrapper	
Writing	MYMETA.yml	and	MYMETA.json	
this is the output from using the default 'cpan' client to install something.
GENEHACK/Git-Wrapper-0.045.tar.gz																																																																							[17/1516]	
		/opt/plenv/versions/5.23.2/bin/perl5.23.2	Makefile.PL	--	OK	
Running	make	for	G/GE/GENEHACK/Git-Wrapper-0.045.tar.gz	
cp	lib/Git/Wrapper/File/RawModification.pm	blib/lib/Git/Wrapper/File/RawModification.pm	
cp	lib/Git/Wrapper.pm	blib/lib/Git/Wrapper.pm	
cp	lib/Git/Wrapper/Statuses.pm	blib/lib/Git/Wrapper/Statuses.pm	
cp	lib/Git/Wrapper/Exception.pm	blib/lib/Git/Wrapper/Exception.pm	
cp	lib/Git/Wrapper/Log.pm	blib/lib/Git/Wrapper/Log.pm	
cp	lib/Git/Wrapper/Status.pm	blib/lib/Git/Wrapper/Status.pm	
Manifying	6	pod	documents	
		GENEHACK/Git-Wrapper-0.045.tar.gz	
		/usr/bin/make	--	OK	
Running	make	test	
PERL_DL_NONLAZY=1	"/opt/plenv/versions/5.23.2/bin/perl5.23.2"	"-MExtUtils::Command::MM"	"-MTest::Harness"	"-e"	"und	
ef	*Test::Harness::Switches;	test_harness(0,	'blib/lib',	'blib/arch')"	t/*.t	
t/00-load.t	...............	1/6	#	Testing	Git::Wrapper	0.045	
t/00-load.t	...............	ok	
t/author-err.t	............	skipped:	these	tests	are	for	testing	by	the	author	
t/basic.t	.................	#	Testing	git	version:	2.5.2	
t/basic.t	.................	ok	
t/git_binary.t	............	ok	
t/parse_args.t	............	ok	
t/path_class.t	............	#	Testing	git	version:	2.5.2	
t/path_class.t	............	ok	
t/release-pod-coverage.t	..	skipped:	these	tests	are	for	release	candidate	testing	
t/release-pod-syntax.t	....	skipped:	these	tests	are	for	release	candidate	testing	
All	tests	successful.	
Files=8,	Tests=67,		1	wallclock	secs	(	0.04	usr		0.02	sys	+		0.39	cusr		0.31	csys	=		0.76	CPU)	
Result:	PASS	
		GENEHACK/Git-Wrapper-0.045.tar.gz
and this is more of the output...
(still not done
but I got tired
of pasting.)
%	cpanm	Git::Wrapper	
-->	Working	on	Git::Wrapper	
Fetching	http://www.cpan.org/authors/id/G/GE/GENEHACK/Git-Wrapper-0.045.tar.gz	...	OK	
Configuring	Git-Wrapper-0.045	...	OK	
Building	and	testing	Git-Wrapper-0.045	...	OK	
Successfully	installed	Git-Wrapper-0.045
this is the output from cpanm installing the same thing
%	cpanm	Git::Wrapper	
-->	Working	on	Git::Wrapper	
Fetching	http://www.cpan.org/authors/id/G/GE/GENEHACK/Git-Wrapper-0.045.tar.gz	...	OK	
Configuring	Git-Wrapper-0.045	...	OK	
Building	and	testing	Git-Wrapper-0.045	...	OK	
Successfully	installed	Git-Wrapper-0.045
this is the output from cpanm installing the same thing
cpanminus
a/k/a
cpanm
carton
Another tool, carton, helps manage your module dependencies in a project. Particularly useful for large projects with multiple devs
Like bundler
but for Perl
it's like ruby's bundler, but for perl modules
Freeze deps,so you
always install same
versions across
dev/staging/prod
❤ Miyagawa
both cpanm and carton were developed by Miyagawa; many thanks to him!
speaking of stuff on CPAN…
so, CPAN...
metacpan.org
we have a whole new website for interacting with CPAN
search.cpan.org
search.cpan.org is still around...
but metacpan integrates and visualizes a bunch of information in a really useful way
things like a syntax-highlighted source view, linking to home pages and code repos, showing test results, and the amount of activity in a project
https://github.com/CPAN-API/metacpan-web
it's also open source, so if you can think of a way to make it better, you can
❤ MetaCPAN team
thanks to the whole metacpan team for all their hard work
Duck Duck Go
we also have a new search engine here in 2016. it's cool, and it's partially written in Perl
Duck Duck Go
!cpanm
The most useful feature, though, is ability to use 'bang searches' to restrict your search to a particular site - this is how you search metacpan
speaking of modules...
if you haven't been playing close attention to perl community goings on, there are a few new modules you may have missed
JSON::MaybeXS
anybody doing web development these days needs to interact with JSON - using JSON::MaybeXS will make sure that you have a JSON library available, picking the best
one from a number of alternatives
Cpanel::JSON::XS
JSON::XS
JSON::PP
here's how the fallback works -- and if you install JSON::MaybeXS and don't have any of these installed, it will require Cpanel::JSON::XS (as long as you have a compiler
to build the XS)
Moose
Moo
To get a handle on how we do OOP in Perl these days, you should look into Moose -- and then when you're ready to write some code, you'll probably be able to get
away with dropping down to Moo
CGI.pm
is
gone
I do have some bad news for you -- CGI.pm has been pulled out of core
(not really)
don't worry, you can still find it on CPAN
Plack
But the current standard for web development in Perl is Plack/PSGI. Offers a number of advantages over CGI, and is the basis for all modern Perl web frameworks
speaking of Perl websites…
we have quite a few new websites these days, which make it easier to keep up with the current state of things
http://cpanratings.perl.org/
one of the problems with cpan is there's just _so_ _much_ _stuff_ there. it can be hard to decide which one of a dozen different modules to use. cpanratings helps with
this problem
http://cpanratings.perl.org/
you can see individual reviews, which version they're reviewing, and so on. one downside - because ratings are about a particular version, may not reflect current module
state
https://metacpan.org/
MetaCPAN links to reviews as well as showing an average review score
http://cpants.cpanauthors.org/
we also have CPANTS - automated testing of some best practices around module development
http://cpants.cpanauthors.org/
here's what that looks like for a particular module. super useful if you're not sure you're doing things the "right" way
http://cpants.cpanauthors.org/author/GENEHACK
can also see modules by author, which can be useful when trying to decide whether to use somebody's code
https://metacpan.org/
MetaCPAN links to CPANTS too
http://prepan.org/
We also have PrePAN, which is a place to get feedback on module ideas you haven't even written yet
Perl 5 Porters mailing list summaries!
In a recent development, sawyer has revived the p5p weekly email summary -- excellent if you want to keep up with what's going on with perl5 development but don't
have time to follow the email list yourself
http://blogs.perl.org/users/sawyer_x/
and in a recent development, sawyer has revived the p5p weekly email summary -- excellent if you want to keep up with what's going on with perl5 development but
don't have time to follow the email list yourself
speaking of Perl community…
finally, you really should consider becoming more actively involved with the perl community, if you're working with (or even just playing with) perl
irc.perl.org
irc.perl.org had a *bit* of a bad reputation </understatement> but things have been cleaned up a bunch. there's a documented standards of conduct, abuse is not
tolerated, and it's a good place to get help from experienced perl folk
Conferences
& Workshops

& Mongers

(oh my.)
big conferences: YAPC, once a year (or so), in North America, Europe, Asia. Sometimes Brazil, Russia too

workshops: smaller, regional. Pittsburgh, DC-Baltimore, Orlando

perl mongers groups: like MasterCard, we *errywhere* you want to be
http://www.pm.org/groups/north_america.html
finally, you really should consider becoming more actively involved with the perl community, if you're working with (or even just playing with) perl, there's probably a local
perl mongers group near you
http://saltlake.pm.org/
here's the SLC one!
http://perlweekly.com/
finally, let me give a big shout out to perl weekly, which is a once a week email newsletter and website aggregating perl related news from all over the web

if you're only going to pay attention to one perl thing, perl weekly is your best choice! sign up at perlweekly.com
thanks!
thanks to the organizers for accepting my talk, thanks to all of you for attending and participating ...
thanks to my employer for giving me the time to write this talk and sending me here to deliver it
questions?
https://joind.in/event/openwest-2016/modern-perl-for-the-unfrozen-paleolithic-perl-programmer
http://tinyurl.com/unfrozen-perl
any questions? (mention feedback link)

More Related Content

What's hot

2016年のPerl (Long version)
2016年のPerl (Long version)2016年のPerl (Long version)
2016年のPerl (Long version)charsbar
 
PHP7 - The New Engine for old good train
PHP7 - The New Engine for old good trainPHP7 - The New Engine for old good train
PHP7 - The New Engine for old good trainXinchen Hui
 
PHP 7.1 : elegance of our legacy
PHP 7.1 : elegance of our legacyPHP 7.1 : elegance of our legacy
PHP 7.1 : elegance of our legacyDamien Seguy
 
typemap in Perl/XS
typemap in Perl/XS  typemap in Perl/XS
typemap in Perl/XS charsbar
 
Inside the JVM - Follow the white rabbit!
Inside the JVM - Follow the white rabbit!Inside the JVM - Follow the white rabbit!
Inside the JVM - Follow the white rabbit!Sylvain Wallez
 
Getting started with Perl XS and Inline::C
Getting started with Perl XS and Inline::CGetting started with Perl XS and Inline::C
Getting started with Perl XS and Inline::Cdaoswald
 
Server Side Swift
Server Side SwiftServer Side Swift
Server Side SwiftJens Ravens
 
Fighting API Compatibility On Fluentd Using "Black Magic"
Fighting API Compatibility On Fluentd Using "Black Magic"Fighting API Compatibility On Fluentd Using "Black Magic"
Fighting API Compatibility On Fluentd Using "Black Magic"SATOSHI TAGOMORI
 
Preparing code for Php 7 workshop
Preparing code for Php 7 workshopPreparing code for Php 7 workshop
Preparing code for Php 7 workshopDamien Seguy
 
Doctrine 2.0 Enterprise Persistence Layer for PHP
Doctrine 2.0 Enterprise Persistence Layer for PHPDoctrine 2.0 Enterprise Persistence Layer for PHP
Doctrine 2.0 Enterprise Persistence Layer for PHPGuilherme Blanco
 
Better detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 codeBetter detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 codecharsbar
 
Web development with Lua: Introducing Sailor an MVC web framework @ CodingSer...
Web development with Lua: Introducing Sailor an MVC web framework @ CodingSer...Web development with Lua: Introducing Sailor an MVC web framework @ CodingSer...
Web development with Lua: Introducing Sailor an MVC web framework @ CodingSer...Etiene Dalcol
 
Php 7 hhvm and co
Php 7 hhvm and coPhp 7 hhvm and co
Php 7 hhvm and coPierre Joye
 
PHP traits, treat or threat?
PHP traits, treat or threat?PHP traits, treat or threat?
PHP traits, treat or threat?Nick Belhomme
 
Perl 5.10 in 2010
Perl 5.10 in 2010Perl 5.10 in 2010
Perl 5.10 in 2010guest7899f0
 
parenscript-tutorial
parenscript-tutorialparenscript-tutorial
parenscript-tutorialtutorialsruby
 
Docker for Developers - PHP Detroit 2018
Docker for Developers - PHP Detroit 2018Docker for Developers - PHP Detroit 2018
Docker for Developers - PHP Detroit 2018Chris Tankersley
 
Mastering Namespaces in PHP
Mastering Namespaces in PHPMastering Namespaces in PHP
Mastering Namespaces in PHPNick Belhomme
 
What you need to remember when you upload to CPAN
What you need to remember when you upload to CPANWhat you need to remember when you upload to CPAN
What you need to remember when you upload to CPANcharsbar
 

What's hot (20)

2016年のPerl (Long version)
2016年のPerl (Long version)2016年のPerl (Long version)
2016年のPerl (Long version)
 
PHP7 - The New Engine for old good train
PHP7 - The New Engine for old good trainPHP7 - The New Engine for old good train
PHP7 - The New Engine for old good train
 
PHP 7.1 : elegance of our legacy
PHP 7.1 : elegance of our legacyPHP 7.1 : elegance of our legacy
PHP 7.1 : elegance of our legacy
 
typemap in Perl/XS
typemap in Perl/XS  typemap in Perl/XS
typemap in Perl/XS
 
Inside the JVM - Follow the white rabbit!
Inside the JVM - Follow the white rabbit!Inside the JVM - Follow the white rabbit!
Inside the JVM - Follow the white rabbit!
 
Getting started with Perl XS and Inline::C
Getting started with Perl XS and Inline::CGetting started with Perl XS and Inline::C
Getting started with Perl XS and Inline::C
 
Server Side Swift
Server Side SwiftServer Side Swift
Server Side Swift
 
Fighting API Compatibility On Fluentd Using "Black Magic"
Fighting API Compatibility On Fluentd Using "Black Magic"Fighting API Compatibility On Fluentd Using "Black Magic"
Fighting API Compatibility On Fluentd Using "Black Magic"
 
Introduction to Perl
Introduction to PerlIntroduction to Perl
Introduction to Perl
 
Preparing code for Php 7 workshop
Preparing code for Php 7 workshopPreparing code for Php 7 workshop
Preparing code for Php 7 workshop
 
Doctrine 2.0 Enterprise Persistence Layer for PHP
Doctrine 2.0 Enterprise Persistence Layer for PHPDoctrine 2.0 Enterprise Persistence Layer for PHP
Doctrine 2.0 Enterprise Persistence Layer for PHP
 
Better detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 codeBetter detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 code
 
Web development with Lua: Introducing Sailor an MVC web framework @ CodingSer...
Web development with Lua: Introducing Sailor an MVC web framework @ CodingSer...Web development with Lua: Introducing Sailor an MVC web framework @ CodingSer...
Web development with Lua: Introducing Sailor an MVC web framework @ CodingSer...
 
Php 7 hhvm and co
Php 7 hhvm and coPhp 7 hhvm and co
Php 7 hhvm and co
 
PHP traits, treat or threat?
PHP traits, treat or threat?PHP traits, treat or threat?
PHP traits, treat or threat?
 
Perl 5.10 in 2010
Perl 5.10 in 2010Perl 5.10 in 2010
Perl 5.10 in 2010
 
parenscript-tutorial
parenscript-tutorialparenscript-tutorial
parenscript-tutorial
 
Docker for Developers - PHP Detroit 2018
Docker for Developers - PHP Detroit 2018Docker for Developers - PHP Detroit 2018
Docker for Developers - PHP Detroit 2018
 
Mastering Namespaces in PHP
Mastering Namespaces in PHPMastering Namespaces in PHP
Mastering Namespaces in PHP
 
What you need to remember when you upload to CPAN
What you need to remember when you upload to CPANWhat you need to remember when you upload to CPAN
What you need to remember when you upload to CPAN
 

Viewers also liked

No Hugging, No Learning
No Hugging, No LearningNo Hugging, No Learning
No Hugging, No LearningOlaf Alders
 
Moo the universe and everything
Moo the universe and everythingMoo the universe and everything
Moo the universe and everythingHenry Van Styn
 
Perl 5.28 new features
Perl 5.28 new featuresPerl 5.28 new features
Perl 5.28 new featuresbrian d foy
 
Fog Computing with VORTEX
Fog Computing with VORTEXFog Computing with VORTEX
Fog Computing with VORTEXAngelo Corsaro
 

Viewers also liked (6)

No Hugging, No Learning
No Hugging, No LearningNo Hugging, No Learning
No Hugging, No Learning
 
Moo the universe and everything
Moo the universe and everythingMoo the universe and everything
Moo the universe and everything
 
Medium Perl
Medium PerlMedium Perl
Medium Perl
 
Perl 5.28 new features
Perl 5.28 new featuresPerl 5.28 new features
Perl 5.28 new features
 
Fog Computing with VORTEX
Fog Computing with VORTEXFog Computing with VORTEX
Fog Computing with VORTEX
 
FOG COMPUTING
FOG COMPUTINGFOG COMPUTING
FOG COMPUTING
 

Similar to Modern Perl for the Unfrozen Paleolithic Perl Programmer

Old Dogs & New Tricks: What's New With Perl5 This Century
Old Dogs & New Tricks: What's New With Perl5 This CenturyOld Dogs & New Tricks: What's New With Perl5 This Century
Old Dogs & New Tricks: What's New With Perl5 This CenturyJohn Anderson
 
Old Dogs & New Tricks: What's New with Perl5 This Century
Old Dogs & New Tricks: What's New with Perl5 This CenturyOld Dogs & New Tricks: What's New with Perl5 This Century
Old Dogs & New Tricks: What's New with Perl5 This CenturyJohn Anderson
 
Old Dogs & New Tricks: What's New with Perl5 This Century
Old Dogs & New Tricks: What's New with Perl5 This CenturyOld Dogs & New Tricks: What's New with Perl5 This Century
Old Dogs & New Tricks: What's New with Perl5 This CenturyAll Things Open
 
Perl 5.16 and beyond
Perl 5.16 and beyondPerl 5.16 and beyond
Perl 5.16 and beyondJesse Vincent
 
Perl 5.14 for Pragmatists
Perl 5.14 for PragmatistsPerl 5.14 for Pragmatists
Perl 5.14 for PragmatistsRicardo Signes
 
Perl 5.16 and Beyond - YAPC::Asia 2011
Perl 5.16 and Beyond - YAPC::Asia 2011Perl 5.16 and Beyond - YAPC::Asia 2011
Perl 5.16 and Beyond - YAPC::Asia 2011Jesse Vincent
 
Perl 5: Today, Tomorrow, and Christmas
Perl 5: Today, Tomorrow, and ChristmasPerl 5: Today, Tomorrow, and Christmas
Perl 5: Today, Tomorrow, and ChristmasRicardo Signes
 
Perl 7, the story of
Perl 7, the story ofPerl 7, the story of
Perl 7, the story ofAndrew Shitov
 
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
 
Whatsnew in-perl
Whatsnew in-perlWhatsnew in-perl
Whatsnew in-perldaoswald
 
Perl 5.10
Perl 5.10Perl 5.10
Perl 5.10acme
 
Puppet 3: Present and Future Tense
Puppet 3: Present and Future TensePuppet 3: Present and Future Tense
Puppet 3: Present and Future TenseEric Sorenson
 
Puppet 3: Present and Future Tense
Puppet 3: Present and Future TensePuppet 3: Present and Future Tense
Puppet 3: Present and Future TensePuppet
 
What's new in Perl 5.14
What's new in Perl 5.14What's new in Perl 5.14
What's new in Perl 5.14Andrew Shitov
 
Machine vision and device integration with the Ruby programming language (2008)
Machine vision and device integration with the Ruby programming language (2008)Machine vision and device integration with the Ruby programming language (2008)
Machine vision and device integration with the Ruby programming language (2008)Jan Wedekind
 
Was können wir von Rebol lernen?
Was können wir von Rebol lernen?Was können wir von Rebol lernen?
Was können wir von Rebol lernen?lichtkind
 
YAPC::Tiny Introduction
YAPC::Tiny IntroductionYAPC::Tiny Introduction
YAPC::Tiny IntroductionKang-min Liu
 
Le PERL est mort
Le PERL est mortLe PERL est mort
Le PERL est mortapeiron
 

Similar to Modern Perl for the Unfrozen Paleolithic Perl Programmer (20)

Old Dogs & New Tricks: What's New With Perl5 This Century
Old Dogs & New Tricks: What's New With Perl5 This CenturyOld Dogs & New Tricks: What's New With Perl5 This Century
Old Dogs & New Tricks: What's New With Perl5 This Century
 
Old Dogs & New Tricks: What's New with Perl5 This Century
Old Dogs & New Tricks: What's New with Perl5 This CenturyOld Dogs & New Tricks: What's New with Perl5 This Century
Old Dogs & New Tricks: What's New with Perl5 This Century
 
Old Dogs & New Tricks: What's New with Perl5 This Century
Old Dogs & New Tricks: What's New with Perl5 This CenturyOld Dogs & New Tricks: What's New with Perl5 This Century
Old Dogs & New Tricks: What's New with Perl5 This Century
 
Perl 5.16 and beyond
Perl 5.16 and beyondPerl 5.16 and beyond
Perl 5.16 and beyond
 
Perl 5.14 for Pragmatists
Perl 5.14 for PragmatistsPerl 5.14 for Pragmatists
Perl 5.14 for Pragmatists
 
Perl 5.16 and Beyond - YAPC::Asia 2011
Perl 5.16 and Beyond - YAPC::Asia 2011Perl 5.16 and Beyond - YAPC::Asia 2011
Perl 5.16 and Beyond - YAPC::Asia 2011
 
Perl 5: Today, Tomorrow, and Christmas
Perl 5: Today, Tomorrow, and ChristmasPerl 5: Today, Tomorrow, and Christmas
Perl 5: Today, Tomorrow, and Christmas
 
Perl 7, the story of
Perl 7, the story ofPerl 7, the story of
Perl 7, the story of
 
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?
 
Whatsnew in-perl
Whatsnew in-perlWhatsnew in-perl
Whatsnew in-perl
 
Perl Moderno
Perl ModernoPerl Moderno
Perl Moderno
 
Perl 5.10
Perl 5.10Perl 5.10
Perl 5.10
 
A is for Angular
A is for AngularA is for Angular
A is for Angular
 
Puppet 3: Present and Future Tense
Puppet 3: Present and Future TensePuppet 3: Present and Future Tense
Puppet 3: Present and Future Tense
 
Puppet 3: Present and Future Tense
Puppet 3: Present and Future TensePuppet 3: Present and Future Tense
Puppet 3: Present and Future Tense
 
What's new in Perl 5.14
What's new in Perl 5.14What's new in Perl 5.14
What's new in Perl 5.14
 
Machine vision and device integration with the Ruby programming language (2008)
Machine vision and device integration with the Ruby programming language (2008)Machine vision and device integration with the Ruby programming language (2008)
Machine vision and device integration with the Ruby programming language (2008)
 
Was können wir von Rebol lernen?
Was können wir von Rebol lernen?Was können wir von Rebol lernen?
Was können wir von Rebol lernen?
 
YAPC::Tiny Introduction
YAPC::Tiny IntroductionYAPC::Tiny Introduction
YAPC::Tiny Introduction
 
Le PERL est mort
Le PERL est mortLe PERL est mort
Le PERL est mort
 

More from John Anderson

Introduction to Git (even for non-developers)
Introduction to Git (even for non-developers)Introduction to Git (even for non-developers)
Introduction to Git (even for non-developers)John Anderson
 
Logs are-magic-devfestweekend2018
Logs are-magic-devfestweekend2018Logs are-magic-devfestweekend2018
Logs are-magic-devfestweekend2018John Anderson
 
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To YouLogs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To YouJohn Anderson
 
A static site generator should be your next language learning project
A static site generator should be your next language learning projectA static site generator should be your next language learning project
A static site generator should be your next language learning projectJohn Anderson
 
Do you want to be right or do you want to WIN?
Do you want to be right or do you want to WIN?Do you want to be right or do you want to WIN?
Do you want to be right or do you want to WIN?John Anderson
 
An Introduction to Git (even for non-developers)
An Introduction to Git (even for non-developers)An Introduction to Git (even for non-developers)
An Introduction to Git (even for non-developers)John Anderson
 
You got chocolate in my peanut butter! .NET on Mac & Linux
You got chocolate in my peanut butter! .NET on Mac & LinuxYou got chocolate in my peanut butter! .NET on Mac & Linux
You got chocolate in my peanut butter! .NET on Mac & LinuxJohn Anderson
 
A static site generator should be your next language learning project
A static site generator should be your next language learning projectA static site generator should be your next language learning project
A static site generator should be your next language learning projectJohn Anderson
 
Introduction to Git (even for non-developers!)
Introduction to Git (even for non-developers!)Introduction to Git (even for non-developers!)
Introduction to Git (even for non-developers!)John Anderson
 
Introduction to Git for Non-Developers
Introduction to Git for Non-DevelopersIntroduction to Git for Non-Developers
Introduction to Git for Non-DevelopersJohn Anderson
 
A Modest Introduction To Swift
A Modest Introduction To SwiftA Modest Introduction To Swift
A Modest Introduction To SwiftJohn Anderson
 
A static site generator should be your next language learning project
A static site generator should be your next language learning projectA static site generator should be your next language learning project
A static site generator should be your next language learning projectJohn Anderson
 
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To YouLogs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To YouJohn Anderson
 
JSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your LifeJSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your LifeJohn Anderson
 
A Modest Introduction to Swift
A Modest Introduction to SwiftA Modest Introduction to Swift
A Modest Introduction to SwiftJohn Anderson
 
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To YouLogs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To YouJohn Anderson
 
Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...
Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...
Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...John Anderson
 
A Modest Introduction To Swift
A Modest Introduction To SwiftA Modest Introduction To Swift
A Modest Introduction To SwiftJohn Anderson
 
Logs Are Magic! Why git workflows & commit structure should matter to you
Logs Are Magic! Why git workflows & commit structure should matter to youLogs Are Magic! Why git workflows & commit structure should matter to you
Logs Are Magic! Why git workflows & commit structure should matter to youJohn Anderson
 

More from John Anderson (20)

#speakerlife
#speakerlife#speakerlife
#speakerlife
 
Introduction to Git (even for non-developers)
Introduction to Git (even for non-developers)Introduction to Git (even for non-developers)
Introduction to Git (even for non-developers)
 
Logs are-magic-devfestweekend2018
Logs are-magic-devfestweekend2018Logs are-magic-devfestweekend2018
Logs are-magic-devfestweekend2018
 
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To YouLogs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
 
A static site generator should be your next language learning project
A static site generator should be your next language learning projectA static site generator should be your next language learning project
A static site generator should be your next language learning project
 
Do you want to be right or do you want to WIN?
Do you want to be right or do you want to WIN?Do you want to be right or do you want to WIN?
Do you want to be right or do you want to WIN?
 
An Introduction to Git (even for non-developers)
An Introduction to Git (even for non-developers)An Introduction to Git (even for non-developers)
An Introduction to Git (even for non-developers)
 
You got chocolate in my peanut butter! .NET on Mac & Linux
You got chocolate in my peanut butter! .NET on Mac & LinuxYou got chocolate in my peanut butter! .NET on Mac & Linux
You got chocolate in my peanut butter! .NET on Mac & Linux
 
A static site generator should be your next language learning project
A static site generator should be your next language learning projectA static site generator should be your next language learning project
A static site generator should be your next language learning project
 
Introduction to Git (even for non-developers!)
Introduction to Git (even for non-developers!)Introduction to Git (even for non-developers!)
Introduction to Git (even for non-developers!)
 
Introduction to Git for Non-Developers
Introduction to Git for Non-DevelopersIntroduction to Git for Non-Developers
Introduction to Git for Non-Developers
 
A Modest Introduction To Swift
A Modest Introduction To SwiftA Modest Introduction To Swift
A Modest Introduction To Swift
 
A static site generator should be your next language learning project
A static site generator should be your next language learning projectA static site generator should be your next language learning project
A static site generator should be your next language learning project
 
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To YouLogs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
 
JSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your LifeJSON Web Tokens Will Improve Your Life
JSON Web Tokens Will Improve Your Life
 
A Modest Introduction to Swift
A Modest Introduction to SwiftA Modest Introduction to Swift
A Modest Introduction to Swift
 
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To YouLogs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
Logs Are Magic: Why Git Workflows and Commit Structure Should Matter To You
 
Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...
Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...
Friends Don't Let Friends Browse Unencrypted: Running a VPN for friends and f...
 
A Modest Introduction To Swift
A Modest Introduction To SwiftA Modest Introduction To Swift
A Modest Introduction To Swift
 
Logs Are Magic! Why git workflows & commit structure should matter to you
Logs Are Magic! Why git workflows & commit structure should matter to youLogs Are Magic! Why git workflows & commit structure should matter to you
Logs Are Magic! Why git workflows & commit structure should matter to you
 

Recently uploaded

FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607dollysharma2066
 
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Roomgirls4nights
 
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsRadiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsstephieert
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebJames Anderson
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012rehmti665
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsThierry TROUIN ☁
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Dana Luther
 
Gram Darshan PPT cyber rural in villages of india
Gram Darshan PPT cyber rural  in villages of indiaGram Darshan PPT cyber rural  in villages of india
Gram Darshan PPT cyber rural in villages of indiaimessage0108
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Roomdivyansh0kumar0
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...SofiyaSharma5
 

Recently uploaded (20)

FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
 
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
 
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsRadiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girls
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with Flows
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
 
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Gram Darshan PPT cyber rural in villages of india
Gram Darshan PPT cyber rural  in villages of indiaGram Darshan PPT cyber rural  in villages of india
Gram Darshan PPT cyber rural in villages of india
 
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
 
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 

Modern Perl for the Unfrozen Paleolithic Perl Programmer