Files
The-PERL-Programming-Language/appendix-c-resources-and-community.md
David Liedle 37128dedfb Complete Perl Programming Language book for modern system administrators
This comprehensive guide covers:
- 22 chapters of practical Perl programming
- Focus on system administration and automation
- Modern Perl best practices and techniques
- Real-world examples and production-ready code
- 3 appendices with one-liners, gotchas, and resources

The book targets experienced sysadmins, DevOps engineers, and automation
specialists, demonstrating Perl's continued relevance in 2025 for text
processing, system administration, and rapid development.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-14 11:41:48 -06:00

12 KiB

Appendix C: Resources and Community

"Perl's greatest strength isn't the language itself—it's the vibrant, welcoming community that has grown around it for over three decades."

Official Resources

Core Documentation

  • perldoc.perl.org - The official Perl documentation

    • Complete reference for all built-in functions
    • Tutorials from beginner to advanced
    • FAQ sections covering common questions
    • Best practices and style guides
  • perl.org - The Perl Programming Language website

    • Download Perl distributions
    • News and announcements
    • Links to community resources
    • Getting started guides
  • metacpan.org - The modern CPAN interface

    • Search and browse CPAN modules
    • Documentation for all CPAN distributions
    • Author profiles and statistics
    • Dependency information and reverse dependencies

Essential Documentation Commands

# Built-in documentation
perldoc perl          # Perl overview
perldoc perlintro     # Introduction for beginners
perldoc perlreftut    # References tutorial
perldoc perlretut     # Regular expressions tutorial
perldoc perlobj       # Object-oriented programming
perldoc perlmod       # Modules and packages
perldoc perlsyn       # Syntax reference
perldoc perldata      # Data structures
perldoc perlop        # Operators
perldoc perlfunc      # Built-in functions
perldoc perlvar       # Special variables
perldoc perlre        # Regular expressions reference
perldoc perldebug     # Debugging
perldoc perldiag      # Diagnostic messages

# Module documentation
perldoc Module::Name   # Documentation for installed module
perldoc -m Module::Name # Source code of module
perldoc -l Module::Name # Location of module file

# Function documentation
perldoc -f function_name  # Specific function docs
perldoc -v '$variable'    # Special variable docs

# FAQ sections
perldoc perlfaq       # FAQ index
perldoc perlfaq1      # General questions
perldoc perlfaq2      # Obtaining and learning Perl
perldoc perlfaq3      # Programming tools
perldoc perlfaq4      # Data manipulation
perldoc perlfaq5      # Files and formats
perldoc perlfaq6      # Regular expressions
perldoc perlfaq7      # General Perl language
perldoc perlfaq8      # System interaction
perldoc perlfaq9      # Web, networking, IPC

Books and Learning Materials

Classic Books

  • "Programming Perl" (4th Edition) by Tom Christiansen, brian d foy, Larry Wall, Jon Orwant

    • The definitive reference, aka "The Camel Book"
    • Comprehensive coverage of Perl 5.14
    • Written by Perl's creator and core contributors
  • "Learning Perl" (8th Edition) by Randal L. Schwartz, brian d foy, Tom Phoenix

    • The best introduction for beginners, aka "The Llama Book"
    • Exercises with solutions
    • Gradually builds from basics to intermediate
  • "Intermediate Perl" (2nd Edition) by Randal L. Schwartz, brian d foy, Tom Phoenix

    • References, complex data structures, OOP
    • Packages and modules
    • Testing and debugging
  • "Mastering Perl" (2nd Edition) by brian d foy

    • Advanced techniques
    • Profiling and benchmarking
    • Configuration and logging
  • "Effective Perl Programming" (2nd Edition) by Joseph N. Hall, Joshua McAdams, brian d foy

    • 120 ways to write better Perl
    • Best practices and idioms
    • Performance optimization

Modern Perl Resources

  • "Modern Perl" by chromatic

    • Free online at modernperlbooks.com
    • Contemporary Perl best practices
    • Updated regularly
  • "Higher-Order Perl" by Mark Jason Dominus

    • Functional programming in Perl
    • Advanced techniques
    • Free online at hop.perl.plover.com
  • "Perl Best Practices" by Damian Conway

    • 256 guidelines for writing better Perl
    • Coding standards and conventions
    • Automation and tools

Specialized Topics

  • "Regular Expression Pocket Reference" by Tony Stubblebine

    • Quick reference for regex
    • Cross-language comparison
  • "Network Programming with Perl" by Lincoln Stein

    • Sockets and networking
    • Client-server programming
    • Internet protocols
  • "Perl Testing: A Developer's Notebook" by Ian Langworth, chromatic

    • Comprehensive testing strategies
    • Test-driven development
  • "Automating System Administration with Perl" (2nd Edition) by David N. Blank-Edelman

    • Real-world sysadmin tasks
    • Cross-platform solutions

Online Communities

Discussion Forums

  • PerlMonks (perlmonks.org)

    • Q&A site for Perl programmers
    • Tutorials and code reviews
    • Meditations on Perl philosophy
    • Active since 1999
  • Stack Overflow (stackoverflow.com/questions/tagged/perl)

    • Large collection of Perl Q&A
    • Quick responses
    • Searchable archive
  • Reddit (reddit.com/r/perl)

    • News and discussions
    • Weekly threads for beginners
    • Job postings

Mailing Lists

IRC Channels (irc.perl.org)

  • #perl - General Perl discussion
  • #perl-help - Help for beginners
  • #moose - Moose OOP system
  • #catalyst - Catalyst web framework
  • #mojolicious - Mojolicious web framework
  • #dancer - Dancer web framework
  • #dbix-class - DBIx::Class ORM

Social Media

  • Twitter/X

    • @PerlFoundation
    • @PerlWeekly
    • @metacpan
    • #perl hashtag
  • Mastodon

  • Discord

    • The Perl Discord Server
    • Real-time chat and help

Conferences and Events

Major Conferences

  • The Perl and Raku Conference (TPRC)

    • Annual North American conference
    • Formerly YAPC::NA
    • Talks, tutorials, and hackathons
  • FOSDEM Perl Dev Room

    • Annual gathering in Brussels
    • Free and open source focus
    • Perl and Raku tracks
  • German Perl Workshop

    • Annual European conference
    • International attendance
    • Talks in English and German
  • London Perl Workshop

    • Free one-day conference
    • Beginner to advanced talks
    • Social events

Local Perl Mongers Groups

Find your local group at pm.org

  • Regular meetups
  • Technical talks
  • Social events
  • Hackathons

Popular groups:

  • London.pm
  • NYC.pm
  • Chicago.pm
  • Toronto.pm
  • Amsterdam.pm
  • Tokyo.pm
  • Sydney.pm

Development Tools and Services

Online REPLs and Playgrounds

  • 3v4l.org - Online Perl executor
  • onecompiler.com/perl - Online Perl compiler
  • tio.run/#perl5 - Try It Online
  • replit.com - Online IDE with Perl support
  • perlbanjo.com - Interactive Perl tutorial

CI/CD Services with Perl Support

  • GitHub Actions

    • Native Perl support
    • CPAN GitHub Action
    • Matrix testing across versions
  • Travis CI

    • Multiple Perl versions
    • CPAN dependency installation
    • Coverage reporting
  • CircleCI

    • Docker images with Perl
    • Custom Perl configurations
  • GitLab CI

    • Built-in CI/CD
    • Perl Docker images

Code Quality Tools

  • Perl::Critic - Code review tool
  • Perl::Tidy - Code formatter
  • Devel::Cover - Code coverage
  • Test::Pod - POD documentation testing
  • Test::Pod::Coverage - POD completeness

CPAN and Module Resources

Finding Modules

  • MetaCPAN (metacpan.org)

    • Primary CPAN search interface
    • Reviews and ratings
    • Dependency graphs
    • Change logs and issues
  • CPAN Testers (cpantesters.org)

    • Test results across platforms
    • Version compatibility matrix
    • Smoke testing reports
  • PrePAN (prepan.org)

    • Preview and discuss modules before release
    • Get feedback on module ideas
    • Naming suggestions

Creating and Maintaining Modules

  • pause.perl.org - Upload modules to CPAN
  • Dist::Zilla - Distribution builder
  • Module::Build - Build and install modules
  • ExtUtils::MakeMaker - Traditional build system
  • Minilla - Minimal authoring tool
  • App::ModuleBuildTiny - Tiny module builder

Quality Metrics

  • CPANTS (cpants.cpanauthors.org)

    • Kwalitee metrics
    • Best practices compliance
    • Distribution quality
  • CPAN Cover (cpancover.com)

    • Coverage reports for CPAN modules
    • Test quality metrics

Perl 7 and Beyond

Future Development

  • Perl 7 - The next major version

    • Modern defaults
    • Backward compatibility
    • Performance improvements
  • Cor - New object system

    • Built into core
    • Modern OOP features
    • Performance focused
  • Signatures - Subroutine signatures

    • Moving out of experimental
    • Type constraints coming

Staying Updated

  • Perl Weekly (perlweekly.com)

    • Weekly newsletter
    • News, articles, and modules
    • Job listings
  • Perl.com

    • Articles and tutorials
    • Community news
    • Best practices
  • blogs.perl.org

    • Community blogs
    • Technical discussions
    • Project updates

Contributing to Perl

Core Development

  • GitHub (github.com/Perl/perl5)

    • Source code repository
    • Issue tracking
    • Pull requests
  • Perl 5 Porters

Documentation

  • GitHub (github.com/perl-doc/)
    • Documentation projects
    • Translations
    • Improvements welcome

Testing

  • CPAN Testers
    • Test CPAN modules on your system
    • Submit smoke test reports
    • Help ensure quality

Financial Support

  • The Perl Foundation (perlfoundation.org)

    • Grants for development
    • Event sponsorship
    • Infrastructure support
  • Enlightened Perl Organisation (enlightenedperl.org)

    • Sponsors Perl projects
    • Supports infrastructure

Learning Paths

For Beginners

  1. Start with "Learning Perl"
  2. Practice with PerlMonks tutorials
  3. Join beginners@perl.org
  4. Work through Perl Maven tutorials
  5. Build small projects

For Intermediate Programmers

  1. Read "Intermediate Perl"
  2. Explore CPAN modules
  3. Contribute to open source
  4. Attend local Perl Mongers meetings
  5. Write and publish a module

For Advanced Developers

  1. Study "Higher-Order Perl"
  2. Contribute to Perl core
  3. Mentor newcomers
  4. Speak at conferences
  5. Write about Perl

Commercial Support

Companies Offering Perl Support

  • ActiveState - ActivePerl distribution
  • cPanel - Major Perl contributor
  • Booking.com - Sponsors Perl development
  • ZipRecruiter - Perl infrastructure
  • FastMail - Email services in Perl
  • DuckDuckGo - Search engine using Perl

Perl-Focused Consultancies

  • Shadowcat Systems (UK)
  • Perl Training Australia
  • Stonehenge Consulting (USA)
  • Perl Services (Germany)

Useful One-Stop Resources

Quick References

  • perldoc.perl.org/perlcheat - Perl cheat sheet
  • learnxinyminutes.com/docs/perl - Quick syntax overview
  • perlmaven.com - Tutorials and articles
  • perl101.org - Perl basics
  • learn.perl.org - Interactive tutorials

Problem Solving

  • Rosetta Code - Perl solutions to common problems
  • Project Euler - Mathematical problems in Perl
  • Advent of Code - Annual coding challenges
  • PerlGolf - Code golf in Perl

The Perl Philosophy

Remember the Perl motto: "There's more than one way to do it" (TMTOWTDI, pronounced "Tim Toady").

But also remember: "There's more than one way to do it, but sometimes consistency is not a bad thing either" (TIMTOWTDIBSCINABTE, pronounced... well, we just say "Tim Toady Bicarbonate").

Perl Community Values

  • Be nice - The community is welcoming
  • Be helpful - Share knowledge freely
  • Be creative - Embrace different solutions
  • Be pragmatic - Solve real problems
  • Have fun - Enjoy programming

Final Words

The Perl community is one of the most welcoming and helpful in all of programming. Whether you're debugging a regex at 3 AM, optimizing a database query, or building your first web application, you're never alone. The resources in this appendix are your gateway to decades of collective wisdom, millions of lines of tested code, and a community that genuinely wants to see you succeed.

Perl may be over 30 years old, but it continues to evolve, adapt, and thrive because of its community. Join us. Ask questions. Share your knowledge. Build something amazing.

"The Perl community is the CPAN. The CPAN is the Perl community. Everything else is just syntax."

Welcome to Perl. Welcome home.