Modern Perl

31
Modern Perl

Transcript of Modern Perl

Page 1: Modern Perl

Modern Perl

Page 2: Modern Perl

“the world's best and most effective Perl programmers take full advantage of the CPAN to make up for missing language features, to improve their productivity, and because solving a problem once and for all and sharing it is the ultimate expression of laziness, impatience, and hubris”

- chromatic

Page 3: Modern Perl

Perl:The Foundation

Page 4: Modern Perl

CPAN:The Framework

Page 5: Modern Perl

15,000+ Modules

Page 6: Modern Perl

7,000+ Authors

Page 7: Modern Perl

~50 Uploads a Day

Page 8: Modern Perl

201 Mirrors

Page 9: Modern Perl

Massive.

Page 10: Modern Perl

Standard OO Perl:

Page 11: Modern Perl

package Person;

sub new { my ($class, %args) = @_; die(‘Name is required’) if !$args{name}; die(‘Name must be a string’) if ref $args{name}; return bless \%args, $class;}

sub hello { my ($self) = @_; print ‘Hi, my name is, ‘ . $self->{name} . “\n”;}

Page 12: Modern Perl

Modern OO Perl:

Page 13: Modern Perl

package Person;

use Moose;use MooseX::Method::Signature;

has ‘name’ => ( is => ’rw’, isa => ’Str’, required => 1,);

method hello { say ‘Hi, my name is, ‘ . $self->name();}

Page 14: Modern Perl

Modern Perl Code is

Page 15: Modern Perl

Concise

Page 16: Modern Perl

Robust

Page 17: Modern Perl

Maintainable

Page 18: Modern Perl

Agile

Page 19: Modern Perl

CPAN.

Page 20: Modern Perl

Knowing Perl

is not Syntax

Page 21: Modern Perl

Know your Tools

Page 22: Modern Perl

Know CPAN

Page 23: Modern Perl

Be Involved

Page 24: Modern Perl

The Short List

Page 25: Modern Perl

use strict;use warnings;use autodie;

Page 26: Modern Perl

List::UtilsList::MoreUtilsIO::FileIO::DirSub::NameSub::ExporterIPC::CmdDateTime

Page 27: Modern Perl

DBIx::ClassRose::DBCGI::ApplicationCatalystHTTP::EnginePOE

Page 28: Modern Perl

Test::MoreTest::ExceptionTest::DataTest::Warn

Page 29: Modern Perl

MooseMooseX::Method::SignatureMooseX::DeclareMooseX::MultiMethodsMooseX::TypesMooseX::GetoptMouse

Page 30: Modern Perl

Perl 5.10

Page 31: Modern Perl

More Reading

• http://www.modernperlbooks.com/mt/• http://www.enlightenedperl.org/• http://blog.timbunce.org/• irc.perl.org #moose, #dbix-class, #catalyst, etc