[
   {
      "authors" : [
         "salve-j-nilsen"
      ],
      "url_path" : "/article/alpha-omega-donates-usd-250-000-for-perl-and-cpan-security",
      "epoch" : 1784548800,
      "url" : "https://www.perl.com/article/alpha-omega-donates-usd-250-000-for-perl-and-cpan-security",
      "description" : "CPANSec and The Perl and Raku Foundation announce the April Task Force, backed by a USD 250,000 Alpha-Omega grant to strengthen the security of CPAN and Perl.",
      "categories" : "community",
      "tags" : [],
      "title" : "Alpha-Omega Donates USD 250,000 for Perl and CPAN Security"
   },
   {
      "epoch" : 1784109600,
      "authors" : [
         "aliaksandr-zahatski"
      ],
      "url_path" : "/article/three-ways-to-write-a-table-in-podlite",
      "url" : "https://www.perl.com/article/three-ways-to-write-a-table-in-podlite",
      "categories" : "tooling",
      "description" : "A sequel to Podlite comes to Perl: a deep-dive into the three syntaxes for tables (text-mode, structured, and data-driven) with concrete examples and error recovery rules.",
      "title" : "Three ways to write a table in Podlite",
      "tags" : [
         "documentation",
         "pod",
         "podlite",
         "syntax"
      ]
   },
   {
      "url" : "https://www.perl.com/article/perl-toolchain-summit-2026-key-results",
      "authors" : [
         "thibault-duponchelle",
         "breno-g-de-oliveira"
      ],
      "url_path" : "/article/perl-toolchain-summit-2026-key-results",
      "epoch" : 1777550400,
      "tags" : [
         "perl-toolchain-summit",
         "pts"
      ],
      "title" : "The Perl Toolchain Summit 2026: Security, Testing, Porting and Community Collaboration",
      "description" : "Around thirty Perl ecosystem maintainers gathered in Vienna for four days of intensive collaboration, delivering major security tooling improvements, testing infrastructure updates, and core performance enhancements that benefit the entire Perl community.",
      "categories" : "community"
   },
   {
      "description" : "Let's Make a Drum Machine App!",
      "categories" : "development",
      "tags" : [
         "Asynchronous",
         "Drums",
         "MIDI",
         "Music"
      ],
      "title" : "Making an Asynchronous Clocking Drum Machine App in Perl",
      "url_path" : "/article/making-an-asynchronous-clocking-drum-machine-in-perl",
      "authors" : [
         "gene-boggs"
      ],
      "epoch" : 1776117600,
      "url" : "https://www.perl.com/article/making-an-asynchronous-clocking-drum-machine-in-perl"
   },
   {
      "url_path" : "/article/musical-rhythms-with-math-in-perl",
      "authors" : [
         "gene-boggs"
      ],
      "epoch" : 1773532800,
      "url" : "https://www.perl.com/article/musical-rhythms-with-math-in-perl",
      "categories" : "development",
      "description" : "Turn partitions, necklaces, and Euclidean patterns into actual drum grooves with Perl and MIDI",
      "title" : "Musical Rhythms with Math in Perl",
      "tags" : [
         "MIDI",
         "Music",
         "Math"
      ]
   },
   {
      "epoch" : 1770165955,
      "url_path" : "/article/fastmail-donates-usd-10-000-to-the-perl-and-raku-foundation",
      "authors" : [
         "olaf-alders"
      ],
      "url" : "https://www.perl.com/article/fastmail-donates-usd-10-000-to-the-perl-and-raku-foundation",
      "description" : "Fastmail stuck with Perl because Perl stuck with them. TPRF can fund community grants again because of donors like this.",
      "categories" : "community",
      "tags" : [
         "tprf",
         "community",
         "sponsors"
      ],
      "title" : "Fastmail Donates USD 10,000 to The Perl and Raku Foundation"
   },
   {
      "categories" : "community",
      "description" : "Like a well-seasoned cast-iron pan, Perl is reliable, versatile, and built to last. Support TPRC 2026 and connect with a community that values durability and craftsmanship.",
      "tags" : [
         "tprc"
      ],
      "title" : "Cast-Iron Community: Your Chance to Sponsor TPRC 2026",
      "url_path" : "/article/cast-iron-community-your-chance-to-sponsor-tprc-2026",
      "authors" : [
         "olaf-alders"
      ],
      "epoch" : 1770076800,
      "url" : "https://www.perl.com/article/cast-iron-community-your-chance-to-sponsor-tprc-2026"
   },
   {
      "title" : "Podlite comes to Perl: a lightweight block-based markup language for everyday use",
      "tags" : [
         "documentation",
         "markdown",
         "pod"
      ],
      "categories" : "tooling",
      "description" : "This article introduces Podlite to the Perl community, explores the 1.0 specification, shows real examples, and demonstrates early integrations with Perl.",
      "url" : "https://www.perl.com/article/podlite-comes-to-perl-a-lightweight-block-based-markup-language-for-everyday-use",
      "epoch" : 1769537596,
      "authors" : [
         "aliaksandr-zahatski"
      ],
      "url_path" : "/article/podlite-comes-to-perl-a-lightweight-block-based-markup-language-for-everyday-use"
   },
   {
      "url" : "https://www.perl.com/article/announcing-the-perl-toolchain-summit-2026",
      "url_path" : "/article/announcing-the-perl-toolchain-summit-2026",
      "authors" : [
         "philippe-bruhat"
      ],
      "epoch" : 1769169600,
      "tags" : [
         "perl-toolchain-summit",
         "pts"
      ],
      "title" : "Announcing the Perl Toolchain Summit 2026",
      "description" : "Major Perl ecosystem maintainers will gather in Vienna, Austria for four days of intensive collaboration that will benefit the entire Perl community.",
      "categories" : "community"
   },
   {
      "url" : "https://www.perl.com/article/duckduckgo-donates-25-000-to-the-perl-and-raku-foundation-v2025",
      "authors" : [
         "olaf-alders"
      ],
      "url_path" : "/article/duckduckgo-donates-25-000-to-the-perl-and-raku-foundation-v2025",
      "epoch" : 1759320000,
      "tags" : [],
      "title" : "DuckDuckGo Donates $25,000 to The Perl and Raku Foundation v2025",
      "description" : "DuckDuckGo has generously donated USD 25,000 to The Perl and Raku Foundation for the second consecutive year, enabling critical language improvements by developers like Paul Evans, who has previously contributed the builtin module, class feature system, and lexical method support.",
      "categories" : "community"
   },
   {
      "url" : "https://www.perl.com/article/geizhals-donates-to-tprf",
      "epoch" : 1758187800,
      "authors" : [
         "olaf-alders"
      ],
      "url_path" : "/article/geizhals-donates-to-tprf",
      "title" : "Geizhals Preisvergleich Donates USD 10,000 to The Perl and Raku Foundation",
      "tags" : [],
      "description" : "The Perl and Raku Foundation announces a generous USD 10,000 donation from Geizhals Preisvergleich in support of the Perl 5 Core Maintenance Fund. This funding enables critical bug fixes and security improvements that keep Perl stable and reliable for organisations worldwide.",
      "categories" : "community"
   },
   {
      "url" : "https://www.perl.com/article/announcing-dancer2-2-0-0",
      "url_path" : "/article/announcing-dancer2-2-0-0",
      "authors" : [
         "jason-a-crome"
      ],
      "epoch" : 1757959200,
      "title" : "Announcing Dancer2 2.0.0",
      "tags" : [],
      "categories" : "web",
      "description" : "The Dancer Core Team is excited to announce the release of Dancer2 2.0.0."
   },
   {
      "description" : "Perl came for free.  How much have I contributed in return?  Absolutely nothing.",
      "categories" : "community",
      "tags" : [],
      "title" : "My Guilty Perl Obsession",
      "url_path" : "/article/my-guilty-perl-obsession",
      "authors" : [
         "bryan-s-katz"
      ],
      "epoch" : 1756206549,
      "url" : "https://www.perl.com/article/my-guilty-perl-obsession"
   },
   {
      "url" : "https://www.perl.com/article/suse-donates-to-tprf",
      "epoch" : 1754560526,
      "url_path" : "/article/suse-donates-to-tprf",
      "authors" : [
         "olaf-alders"
      ],
      "tags" : [],
      "title" : "SUSE Donates USD 11,500 to The Perl and Raku Foundation",
      "description" : "SUSE contributes $11,500 to support The Perl and Raku Foundation's critical Perl 5 Core Maintenance Fund.",
      "categories" : "community"
   },
   {
      "tags" : [],
      "title" : "MetaCPAN's Traffic Crisis: An Eventual Success Story",
      "categories" : "community",
      "description" : "",
      "url" : "https://www.perl.com/article/metacpan-traffic-crisis",
      "epoch" : 1753740106,
      "authors" : [
         "leo-lapworth"
      ],
      "url_path" : "/article/metacpan-traffic-crisis"
   },
   {
      "title" : "Analysing FIT data with Perl: interactive data analysis",
      "tags" : [
         "science",
         "sport",
         "cycling"
      ],
      "categories" : "data",
      "description" : "Prodding and poking at FIT data with PDL",
      "url" : "https://www.perl.com/article/analysing-fit-data-with-perl-interactive-data-analysis",
      "authors" : [
         "paul-cochrane"
      ],
      "url_path" : "/article/analysing-fit-data-with-perl-interactive-data-analysis",
      "epoch" : 1753616764
   },
   {
      "url" : "https://www.perl.com/article/proxmox-donates-to-tprf",
      "authors" : [
         "olaf-alders"
      ],
      "url_path" : "/article/proxmox-donates-to-tprf",
      "epoch" : 1753266265,
      "title" : "Proxmox Donates â¬10,000 to The Perl and Raku Foundation",
      "tags" : [],
      "description" : "Proxmox Server Solutions GmbH contributes â¬10,000 to support The Perl and Raku Foundation's critical Perl 5 Core Maintenance Fund.",
      "categories" : "community"
   },
   {
      "categories" : "data",
      "description" : "Plotting data extracted from Garmin FIT files with Perl",
      "title" : "Analysing FIT data with Perl: producing PNG plots",
      "tags" : [
         "science",
         "sport",
         "cycling"
      ],
      "epoch" : 1750846208,
      "url_path" : "/article/analysing-fit-data-with-perl-producing-png-plots",
      "authors" : [
         "paul-cochrane"
      ],
      "url" : "https://www.perl.com/article/analysing-fit-data-with-perl-producing-png-plots"
   },
   {
      "url_path" : "/article/analysing-fit-data-with-perl-basic-beginnings",
      "authors" : [
         "paul-cochrane"
      ],
      "epoch" : 1750687195,
      "url" : "https://www.perl.com/article/analysing-fit-data-with-perl-basic-beginnings",
      "categories" : "data",
      "description" : "Extracting and collating data from Garmin FIT files with Perl",
      "title" : "Analysing FIT data with Perl: basic beginnings",
      "tags" : [
         "science",
         "sport",
         "cycling"
      ]
   },
   {
      "description" : "An answer on StackOverflow about pretty printing `DBIx::Class` result sets led to the creation of `DBIx::Class::ResultSet::PrettyPrint`.  This article describes what the module does and shows an example of its use.",
      "categories" : "cpan",
      "title" : "Introducing DBIx::Class::ResultSet::PrettyPrint",
      "tags" : [],
      "authors" : [
         "paul-cochrane"
      ],
      "url_path" : "/article/introducing-dbix-class-resultset-prettyprint",
      "epoch" : 1749207828,
      "url" : "https://www.perl.com/article/introducing-dbix-class-resultset-prettyprint"
   },
   {
      "description" : "Handling alternative node connections in a Map::Tube::<*> map.",
      "categories" : "tutorials",
      "title" : "Building Map::Tube::<*> maps, a HOWTO: alternative connections",
      "tags" : [],
      "authors" : [
         "paul-cochrane"
      ],
      "url_path" : "/article/building-map-tube-maps-a-howto-alternative-connections",
      "epoch" : 1749114587,
      "url" : "https://www.perl.com/article/building-map-tube-maps-a-howto-alternative-connections"
   },
   {
      "url" : "https://www.perl.com/article/slapbirdapm-a-free-and-open-source-observability-tool-for-perl",
      "authors" : [
         "rawley-fowler"
      ],
      "url_path" : "/article/slapbirdapm-a-free-and-open-source-observability-tool-for-perl",
      "epoch" : 1749024000,
      "tags" : [
         "observability",
         "performance",
         "monitoring"
      ],
      "title" : "SlapbirdAPM, a Free and Open-Source Observability Tool for Perl Web Applications",
      "categories" : "tooling",
      "description" : "SlapbirdAPM is a free and open-source observability platform for Perl web applications, this post covers how to use it with Plack applications."
   },
   {
      "description" : "33 Perl ecosystem maintainers gathered in Leipzig for four days of intensive collaboration, delivering major security tooling improvements, testing infrastructure updates, and core performance enhancements that benefit the entire Perl community.",
      "categories" : "community",
      "tags" : [
         "perl-toolchain-summit",
         "pts"
      ],
      "title" : "The Perl Toolchain Summit 2025: Security, Testing, and Community Collaboration",
      "epoch" : 1748606400,
      "url_path" : "/article/perl-toolchain-summit-2025-key-results",
      "authors" : [
         "breno-g-de-oliveira"
      ],
      "url" : "https://www.perl.com/article/perl-toolchain-summit-2025-key-results"
   },
   {
      "url" : "https://www.perl.com/article/building-map-tube-maps-a-howto-routing-relative-reality",
      "url_path" : "/article/building-map-tube-maps-a-howto-routing-relative-reality",
      "authors" : [
         "paul-cochrane"
      ],
      "epoch" : 1748081592,
      "tags" : [],
      "title" : "Building Map::Tube::<*> maps, a HOWTO: routing relative reality",
      "categories" : "tutorials",
      "description" : "Finding routes between stations in a Map::Tube::<*> map."
   },
   {
      "tags" : [],
      "title" : "Building Map::Tube::<*> maps, a HOWTO: weaving a web",
      "categories" : "tutorials",
      "description" : "Weaving more tram lines into our Map::Tube::<*> map.",
      "url" : "https://www.perl.com/article/building-map-tube-maps-a-howto-weaving-a-web",
      "url_path" : "/article/building-map-tube-maps-a-howto-weaving-a-web",
      "authors" : [
         "paul-cochrane"
      ],
      "epoch" : 1747554916
   },
   {
      "tags" : [],
      "title" : "Building Map::Tube::<*> maps, a HOWTO: extending the network",
      "categories" : "tutorials",
      "description" : "Extending the network of a Map::Tube::<*> map.",
      "url" : "https://www.perl.com/article/building-map-tube-maps-a-howto-extending-the-network",
      "epoch" : 1746014409,
      "authors" : [
         "paul-cochrane"
      ],
      "url_path" : "/article/building-map-tube-maps-a-howto-extending-the-network"
   },
   {
      "title" : "Building Map::Tube::<*> maps, a HOWTO: first steps",
      "tags" : [],
      "description" : "First steps at how to build your own Map::Tube::<*> map.",
      "categories" : "tutorials",
      "url" : "https://www.perl.com/article/building-map-tube-maps-a-howto-first-steps",
      "epoch" : 1745232507,
      "url_path" : "/article/building-map-tube-maps-a-howto-first-steps",
      "authors" : [
         "paul-cochrane"
      ]
   },
   {
      "url" : "https://www.perl.com/article/enhancing-your-midi-devices-round-ii",
      "epoch" : 1744221600,
      "authors" : [
         "gene-boggs"
      ],
      "url_path" : "/article/enhancing-your-midi-devices-round-ii",
      "title" : "Enhancing Your MIDI Devices: Round II",
      "tags" : [
         "MIDI",
         "music"
      ],
      "categories" : "development",
      "description" : "Fresh modules for real-time MIDI control and a real-world application"
   },
   {
      "url" : "https://www.perl.com/article/the-perl-toolchain-summit-2025-needs-you",
      "epoch" : 1743746400,
      "url_path" : "/article/the-perl-toolchain-summit-2025-needs-you",
      "authors" : [
         "philippe-bruhat"
      ],
      "title" : "The Perl Toolchain Summit 2025 Needs You",
      "tags" : [
         "perl-toolchain-summit",
         "pts"
      ],
      "description" : "The Perl Toolchain Summit 2025 needs financial support to bring together essential contributors who maintain Perl's critical infrastructure. Unlike languages backed by large corporations, Perl relies entirely on community support. The summit will focus on revitalizing CPAN Testers and implementing secure authentication for PAUSE uploads, both vital for Perl's ecosystem security and health. Current sponsors include Booking.com, WebPros, and several others, but more funding is needed to reach the â¬25,000 target.",
      "categories" : "community"
   },
   {
      "url" : "https://www.perl.com/article/why-deriv-supports-the-perl-ecosystem",
      "authors" : [
         "chris-horn"
      ],
      "url_path" : "/article/why-deriv-supports-the-perl-ecosystem",
      "epoch" : 1741932000,
      "tags" : [],
      "title" : "Why Deriv Supports the Perl Ecosystem",
      "description" : "Deriv, an online trading company processing millions of transactions daily, continues to support the Perl ecosystem after 25 years of utilizing the language in their operations. Their core systems still run on Perl's stable architecture, while they actively maintain support for MetaCPAN and CPAN resources that benefit developers worldwide.",
      "categories" : "community"
   },
   {
      "title" : "From Code to Community: Sponsoring TPRC 2025",
      "tags" : [],
      "description" : "Support the Perl and Raku communities by sponsoring our 2025 conference. Help foster open source development while connecting with talented developers.",
      "categories" : "community",
      "url" : "https://www.perl.com/article/from-code-to-community-sponsoring-tprc-2025",
      "url_path" : "/article/from-code-to-community-sponsoring-tprc-2025",
      "authors" : [
         "olaf-alders"
      ],
      "epoch" : 1740936454
   },
   {
      "epoch" : 1740052800,
      "authors" : [
         "mathew-korica"
      ],
      "url_path" : "/article/what-s-new-on-cpan---january-2025",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---january-2025",
      "description" : "A curated selection of new CPAN uploads including regex-powered which command, mocking tools, and domain parsing utilities.",
      "categories" : "cpan",
      "title" : "What's new on CPAN - January 2025",
      "tags" : [
         "new"
      ]
   },
   {
      "authors" : [
         "mathew-korica"
      ],
      "url_path" : "/article/what-s-new-on-cpan---december-2024",
      "epoch" : 1738500178,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---december-2024",
      "categories" : "cpan",
      "description" : "A curated look at December's new CPAN uploads",
      "tags" : [
         "new"
      ],
      "title" : "What's new on CPAN - December 2024"
   },
   {
      "url" : "https://www.perl.com/article/enhancing-midi-hardware-with-perl",
      "url_path" : "/article/enhancing-midi-hardware-with-perl",
      "authors" : [
         "john-barrett"
      ],
      "epoch" : 1738152000,
      "tags" : [
         "midi",
         "music"
      ],
      "title" : "Enhancing your MIDI devices with Perl",
      "description" : "Add functions and features to MIDI devices by routing them via Perl",
      "categories" : "data"
   },
   {
      "tags" : [
         "geolytica",
         "geoparsing",
         "ai",
         "geocoding",
         "poi",
         "geodata"
      ],
      "title" : "Yet Another Perl-Powered Company: Geolytica",
      "categories" : "perl",
      "description" : "Celebrating 20 years of innovation at Geolytica, Ervin Ruci shares his journey with Perl, from building geocoding engines to enhancing OpenStreetMap data.",
      "url" : "https://www.perl.com/article/geolytica",
      "authors" : [
         "ervin-ruci"
      ],
      "url_path" : "/article/geolytica",
      "epoch" : 1737018000
   },
   {
      "title" : "Creating MIDI Music with Perl",
      "tags" : [
         "MIDI",
         "music"
      ],
      "categories" : "data",
      "description" : "How to create MIDI music with Perl!",
      "url" : "https://www.perl.com/article/creating-midi-music-with-perl",
      "epoch" : 1736931600,
      "url_path" : "/article/creating-midi-music-with-perl",
      "authors" : [
         "gene-boggs"
      ]
   },
   {
      "tags" : [
         "datetime",
         "l10n",
         "unicode",
         "cldr"
      ],
      "title" : "Introducing DateTime::Format::RelativeTime",
      "description" : "Introducing the new Perl module DateTime::Format::RelativeTime, designed to mirror its equivalent Web API: Intl.RelativeTimeFormat",
      "categories" : "development",
      "url" : "https://www.perl.com/article/release-of-new-module-datetime-format-relativetime",
      "url_path" : "/article/release-of-new-module-datetime-format-relativetime",
      "authors" : [
         "jacques-deguest"
      ],
      "epoch" : 1736865900
   },
   {
      "tags" : [
         "new"
      ],
      "title" : "What's new on CPAN - November 2024",
      "categories" : "cpan",
      "description" : "A curated look at November's new CPAN uploads",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---november-2024",
      "epoch" : 1735007074,
      "url_path" : "/article/what-s-new-on-cpan---november-2024",
      "authors" : [
         "mathew-korica"
      ]
   },
   {
      "title" : "Get ready for the 2025 Perl and Raku Conference!",
      "tags" : [
         "perl-conference"
      ],
      "categories" : "community",
      "description" : "Preparations for 2025's conference are well underway, and the CFP is now open!",
      "url" : "https://www.perl.com/article/get-ready-for-the-2025-perl-and-raku-conference",
      "epoch" : 1733256260,
      "url_path" : "/article/get-ready-for-the-2025-perl-and-raku-conference",
      "authors" : [
         "ruth-holloway"
      ]
   },
   {
      "epoch" : 1733184300,
      "authors" : [
         "olaf-alders"
      ],
      "url_path" : "/article/duckduckgo-donates-25-000-to-the-perl-and-raku-foundation",
      "url" : "https://www.perl.com/article/duckduckgo-donates-25-000-to-the-perl-and-raku-foundation",
      "categories" : "community",
      "description" : "The Perl and Raku Foundation is pleased to announce a gift of $25,000 from DuckDuckGo",
      "tags" : [],
      "title" : "DuckDuckGo Donates $25,000 to The Perl and Raku Foundation"
   },
   {
      "description" : "A curated look at October's new CPAN uploads",
      "categories" : "cpan",
      "title" : "What's new on CPAN - October 2024",
      "tags" : [
         "new"
      ],
      "epoch" : 1733184000,
      "authors" : [
         "mathew-korica"
      ],
      "url_path" : "/article/what-s-new-on-cpan---october-2024",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---october-2024"
   },
   {
      "tags" : [],
      "title" : "Randal Schwartz: Half My Life with Perl",
      "categories" : "community",
      "description" : "",
      "url" : "https://www.perl.com/article/randal-schwartz-half-my-life-with-perl",
      "url_path" : "/article/randal-schwartz-half-my-life-with-perl",
      "authors" : [
         "olaf-alders"
      ],
      "epoch" : 1731585600
   },
   {
      "title" : "What's new on CPAN - September 2024",
      "tags" : [
         "new"
      ],
      "description" : "A curated look at September's new CPAN uploads",
      "categories" : "cpan",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---september-2024",
      "epoch" : 1728871662,
      "url_path" : "/article/what-s-new-on-cpan---september-2024",
      "authors" : [
         "mathew-korica"
      ]
   },
   {
      "epoch" : 1728870816,
      "url_path" : "/article/what-s-new-on-cpan---august-2024",
      "authors" : [
         "mathew-korica"
      ],
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---august-2024",
      "categories" : "cpan",
      "description" : "A curated look at August's new CPAN uploads",
      "tags" : [
         "new"
      ],
      "title" : "What's new on CPAN - August 2024"
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---july-2024",
      "epoch" : 1724709600,
      "authors" : [
         "mathew-korica"
      ],
      "url_path" : "/article/what-s-new-on-cpan---july-2024",
      "tags" : [
         "new"
      ],
      "title" : "What's new on CPAN - July 2024",
      "categories" : "cpan",
      "description" : "A curated look at July's new CPAN uploads"
   },
   {
      "description" : "Some more thoughts about deploying Dancer apps as persistent daemons",
      "categories" : "tooling",
      "title" : "Deploying Dancer Apps (Addendum)",
      "tags" : [
         "devops",
         "deployment",
         "dancer",
         "psgi"
      ],
      "epoch" : 1723651200,
      "url_path" : "/article/deploying-dancer-apps-addendum",
      "authors" : [
         "dave-cross"
      ],
      "url" : "https://www.perl.com/article/deploying-dancer-apps-addendum"
   },
   {
      "title" : "Why We Sponsor MetaCPAN: OpenCage",
      "tags" : [
         "opencage",
         "metacpan",
         "sponsorship",
         "geocoding"
      ],
      "categories" : "cpan",
      "description" : "A profile of MetaCPAN sponsor OpenCage",
      "url" : "https://www.perl.com/article/why-we-sponsor-metacpan-opencage",
      "authors" : [
         "ed-freyfogle"
      ],
      "url_path" : "/article/why-we-sponsor-metacpan-opencage",
      "epoch" : 1723464000
   },
   {
      "categories" : "cpan",
      "description" : "A curated look at June's new CPAN uploads",
      "tags" : [
         "new"
      ],
      "title" : "What's new on CPAN - June 2024",
      "epoch" : 1721599200,
      "url_path" : "/article/what-s-new-on-cpan---june-2024",
      "authors" : [
         "mathew-korica"
      ],
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---june-2024"
   },
   {
      "title" : "What's New in Perl v5.40?",
      "tags" : [
         "release",
         "enhancements",
         "features"
      ],
      "categories" : "syntax",
      "description" : "Discussion about core enhancements in Perl v5.40",
      "url" : "https://www.perl.com/article/what-is-new-in-perl",
      "epoch" : 1719565200,
      "url_path" : "/article/what-is-new-in-perl",
      "authors" : [
         "mohammad-anwar"
      ]
   },
   {
      "categories" : "cpan",
      "description" : "A curated look at May's new CPAN uploads",
      "title" : "What's new on CPAN - May 2024",
      "tags" : [
         "new"
      ],
      "epoch" : 1719475200,
      "url_path" : "/article/what-s-new-on-cpan---may-2024",
      "authors" : [
         "mathew-korica"
      ],
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---may-2024"
   },
   {
      "url" : "https://www.perl.com/article/deploying-dancer-apps",
      "epoch" : 1716575100,
      "url_path" : "/article/deploying-dancer-apps",
      "authors" : [
         "dave-cross"
      ],
      "title" : "Deploying Dancer Apps",
      "tags" : [
         "devops",
         "deployment",
         "dancer",
         "psgi"
      ],
      "categories" : "tooling",
      "description" : "Some thoughts about deploying Dancer apps as persistent daemons"
   },
   {
      "title" : "The London Perl & Raku Workshop 2024",
      "tags" : [
         "lpw",
         "london"
      ],
      "description" : "The return of one of Perl's largest community events",
      "categories" : "community",
      "url" : "https://www.perl.com/article/announcing-the-london-perl-raku-workshop-2024-lpw",
      "epoch" : 1716378300,
      "authors" : [
         "lee-johnson"
      ],
      "url_path" : "/article/announcing-the-london-perl-raku-workshop-2024-lpw"
   },
   {
      "url" : "https://www.perl.com/article/this-is-your-opportunity-to-sponsor-the-perl-and-raku-conference-2024",
      "authors" : [
         "olaf-alders"
      ],
      "url_path" : "/article/this-is-your-opportunity-to-sponsor-the-perl-and-raku-conference-2024",
      "epoch" : 1715886000,
      "title" : "This is Your Opportunity to Sponsor the Perl and Raku Conference 2024",
      "tags" : [],
      "categories" : "community",
      "description" : "Sponsorship opportunities for the 2024 Perl and Raku Conference are still available"
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---april-2024",
      "epoch" : 1715281200,
      "authors" : [
         "mathew-korica"
      ],
      "url_path" : "/article/what-s-new-on-cpan---april-2024",
      "tags" : [
         "new"
      ],
      "title" : "What's new on CPAN - April 2024",
      "description" : "A curated look at April's new CPAN uploads",
      "categories" : "cpan"
   },
   {
      "url_path" : "/article/what-s-new-on-cpan---march-2024",
      "authors" : [
         "mathew-korica"
      ],
      "epoch" : 1714510800,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---march-2024",
      "description" : "A curated look at March's new CPAN uploads",
      "categories" : "cpan",
      "title" : "What's new on CPAN - March 2024",
      "tags" : [
         "new"
      ]
   },
   {
      "epoch" : 1711476000,
      "authors" : [
         "paul-cochrane"
      ],
      "url_path" : "/article/hotel-hotspot-hijinks",
      "url" : "https://www.perl.com/article/hotel-hotspot-hijinks",
      "description" : "Automating a hotel captive portal",
      "categories" : "networking",
      "title" : "Hotel hotspot hijinks",
      "tags" : []
   },
   {
      "epoch" : 1711389600,
      "url_path" : "/article/5-reasons-to-sponsor-the-perl-toolchain-summit",
      "authors" : [
         "olaf-alders"
      ],
      "url" : "https://www.perl.com/article/5-reasons-to-sponsor-the-perl-toolchain-summit",
      "description" : "",
      "categories" : "community",
      "title" : "5 Reasons to Sponsor the Perl Toolchain Summit",
      "tags" : [
         "perl-toolchain-summit",
         "pts"
      ]
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---february-2024",
      "url_path" : "/article/what-s-new-on-cpan---february-2024",
      "authors" : [
         "mathew-korica"
      ],
      "epoch" : 1710451197,
      "title" : "What's new on CPAN - February 2024",
      "tags" : [
         "new"
      ],
      "categories" : "cpan",
      "description" : "A curated look at February 2024's new CPAN uploads"
   },
   {
      "epoch" : 1708128000,
      "authors" : [
         "mathew-korica"
      ],
      "url_path" : "/article/what-s-new-on-cpan---january-2024",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---january-2024",
      "description" : "A curated look at January's new CPAN uploads",
      "categories" : "cpan",
      "tags" : [
         "new"
      ],
      "title" : "What's new on CPAN - January 2024"
   },
   {
      "authors" : [
         "mathew-korica"
      ],
      "url_path" : "/article/what-s-new-on-cpan---december-2023",
      "epoch" : 1704775496,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---december-2023",
      "description" : "A curated look at December's new CPAN uploads",
      "categories" : "cpan",
      "tags" : [
         "new"
      ],
      "title" : "What's new on CPAN - December 2023"
   },
   {
      "authors" : [
         "mathew-korica"
      ],
      "url_path" : "/article/what-s-new-on-cpan---november-2023",
      "epoch" : 1703102545,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---november-2023",
      "description" : "A curated look at November's new CPAN uploads",
      "categories" : "cpan",
      "title" : "What's new on CPAN - November 2023",
      "tags" : [
         "new"
      ]
   },
   {
      "epoch" : 1648554532,
      "url_path" : "/article/passing-by",
      "authors" : [
         "thibault-duponchelle"
      ],
      "url" : "https://www.perl.com/article/passing-by",
      "description" : "Looking at how arguments are passed to subs",
      "categories" : "development",
      "tags" : [
         "reference",
         "functions"
      ],
      "title" : "Passing by"
   },
   {
      "url" : "https://www.perl.com/article/perl-one-liners-part-2",
      "authors" : [
         "sundeep-agarwal"
      ],
      "url_path" : "/article/perl-one-liners-part-2",
      "epoch" : 1621911263,
      "title" : "Perl / Unix One-liner Cage Match, Part 2",
      "tags" : [
         "one-liners"
      ],
      "description" : "",
      "categories" : "tutorials"
   },
   {
      "authors" : [
         "sundeep-agarwal"
      ],
      "url_path" : "/article/perl-one-liners-part-1",
      "epoch" : 1620788063,
      "url" : "https://www.perl.com/article/perl-one-liners-part-1",
      "categories" : "tutorials",
      "description" : "",
      "tags" : [
         "one-liners"
      ],
      "title" : "Perl / Unix One-liner Cage Match, Part 1"
   },
   {
      "description" : "How to download and install Perl on Windows, macOS, and Linux",
      "categories" : "tutorials",
      "tags" : [
         "perl",
         "download",
         "install",
         "linux",
         "windows",
         "mac",
         "unix",
         "perlbrew",
         "plenv",
         "activestate",
         "strawberry-perl"
      ],
      "title" : "Downloading and Installing Perl in 2021",
      "url_path" : "/article/downloading-and-installing-perl-in-2021",
      "authors" : [
         "mark-gardner"
      ],
      "epoch" : 1619496340,
      "url" : "https://www.perl.com/article/downloading-and-installing-perl-in-2021"
   },
   {
      "epoch" : 1617067477,
      "authors" : [
         "mark-gardner"
      ],
      "url_path" : "/article/interview-trying-to-catch-paul-leonerd-evans",
      "url" : "https://www.perl.com/article/interview-trying-to-catch-paul-leonerd-evans",
      "description" : "The prolific CPAN and Perl core developer talks about exceptions and other Perl topics.",
      "categories" : "community",
      "title" : "Interview: Trying to Catch Paul \"LeoNerd\" Evans",
      "tags" : [
         "perl",
         "interview",
         "cpan",
         "syntax",
         "core",
         "object-oriented",
         "future",
         "async-await",
         "promises",
         "asynchronous-programming",
         "perl-7",
         "corinna"
      ]
   },
   {
      "epoch" : 1615318509,
      "authors" : [
         "nick-tonkin"
      ],
      "url_path" : "/article/why-i-wrote-net-google-civicinformation",
      "url" : "https://www.perl.com/article/why-i-wrote-net-google-civicinformation",
      "description" : "",
      "categories" : "apps",
      "title" : "Why I wrote Net::Google::CivicInformation",
      "tags" : [
         "community"
      ]
   },
   {
      "description" : "Handling the response to our missing domain",
      "categories" : "community",
      "tags" : [],
      "title" : "The Hijacking of Perl.com",
      "epoch" : 1614502753,
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/the-hijacking-of-perl-com",
      "url" : "https://www.perl.com/article/the-hijacking-of-perl-com"
   },
   {
      "epoch" : 1611576323,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/the-trouble-with-reference-counting",
      "url" : "https://www.perl.com/article/the-trouble-with-reference-counting",
      "description" : "Is tracing garbage collection a realistic alternative?",
      "categories" : "perl-internals",
      "title" : "The Trouble with Reference Counting",
      "tags" : [
         "garbage-collection",
         "tracing",
         "optimization"
      ]
   },
   {
      "url" : "https://www.perl.com/article/extracting-the-list-of-o-reilly-animals",
      "url_path" : "/article/extracting-the-list-of-o-reilly-animals",
      "authors" : [
         "brian-d-foy"
      ],
      "epoch" : 1610388170,
      "title" : "Extracting the list of O'Reilly Animals",
      "tags" : [
         "mojolicious",
         "promises",
         "oreilly"
      ],
      "categories" : "community",
      "description" : "Website fun with Mojolicious's Promises"
   },
   {
      "url" : "https://www.perl.com/article/closures-as-objects",
      "epoch" : 1607864223,
      "url_path" : "/article/closures-as-objects",
      "authors" : [
         "david-farrell"
      ],
      "title" : "Closures as objects",
      "tags" : [
         "closure",
         "lisp",
         "moose",
         "metaobject-protocol",
         "object-oriented"
      ],
      "description" : "How lexical scope and anonymous functions can create powerful object systems",
      "categories" : "programming-languages"
   },
   {
      "tags" : [
         "shebang"
      ],
      "title" : "Bang Bang",
      "categories" : "development",
      "description" : "Fun with the perl shebang",
      "url" : "https://www.perl.com/article/bang-bang",
      "epoch" : 1605092680,
      "url_path" : "/article/bang-bang",
      "authors" : [
         "thibault-duponchelle"
      ]
   },
   {
      "tags" : [],
      "title" : "Stupid DATA Tricks",
      "categories" : "syntax",
      "description" : "When your data file is the program",
      "url" : "https://www.perl.com/article/stupid-data-tricks",
      "epoch" : 1601926495,
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/stupid-data-tricks"
   },
   {
      "tags" : [],
      "title" : "The Perl Ambassador: Damian Conway",
      "description" : "Three-time winner of the \"Larry Wall Award for Practical Utility\".",
      "categories" : "community",
      "url" : "https://www.perl.com/article/the-perl-ambassador-damian-conway",
      "authors" : [
         "mohammad-anwar"
      ],
      "url_path" : "/article/the-perl-ambassador-damian-conway",
      "epoch" : 1601510400
   },
   {
      "url" : "https://www.perl.com/article/searching-internet-rfcs",
      "authors" : [
         "edoardo-mantovani"
      ],
      "url_path" : "/article/searching-internet-rfcs",
      "epoch" : 1600932529,
      "tags" : [
         "Request for Comments",
         "perl tools",
         "protocols knoweledge"
      ],
      "title" : "Searching Internet RFCs",
      "description" : "A smart way to scrape RFCs",
      "categories" : "tooling"
   },
   {
      "url" : "https://www.perl.com/article/the-perl-ambassador-curtis-poe",
      "authors" : [
         "mohammad-anwar"
      ],
      "url_path" : "/article/the-perl-ambassador-curtis-poe",
      "epoch" : 1596861600,
      "tags" : [],
      "title" : "The Perl Ambassador: Curtis 'Ovid' Poe",
      "categories" : "community",
      "description" : "The person behind the text-based Massive Multiplayer Online Browser Game (MMOBG), Tau Station"
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---june-2020",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---june-2020",
      "epoch" : 1595985028,
      "tags" : [
         "cpanel",
         "neo4j",
         "guacamole",
         "slack",
         "opentelemetry",
         "opentracing",
         "excel",
         "cpanfile",
         "pipe2",
         "mrkdwn",
         "project-fluent",
         "open-smtpd"
      ],
      "title" : "What's new on CPAN - June 2020",
      "description" : "A curated look at June's new CPAN uploads",
      "categories" : "cpan"
   },
   {
      "tags" : [
         "ftp",
         "net-ftp",
         "pure-ftpd"
      ],
      "title" : "A tour with Net::FTP",
      "description" : "How to write an FTP client in Perl",
      "categories" : "development",
      "url" : "https://www.perl.com/article/a-tour-with-net-ftp",
      "url_path" : "/article/a-tour-with-net-ftp",
      "authors" : [
         "thibault-duponchelle"
      ],
      "epoch" : 1594640932
   },
   {
      "epoch" : 1594372075,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/listen-to-larry-wall-s-state-of-the-onion-2000-on-youtube",
      "url" : "https://www.perl.com/article/listen-to-larry-wall-s-state-of-the-onion-2000-on-youtube",
      "categories" : "community",
      "description" : "",
      "title" : "Listen to Larry Wall's State of the Onion 2000 on YouTube",
      "tags" : [
         "larry-wall",
         "youtube",
         "state-of-the-onion"
      ]
   },
   {
      "description" : "Perl 5 with modern defaults",
      "categories" : "perl7",
      "title" : "Announcing Perl 7",
      "tags" : [
         "tpcitc",
         "preparing-for-perl-7",
         "indirect"
      ],
      "epoch" : 1592998475,
      "url_path" : "/article/announcing-perl-7",
      "authors" : [
         "brian-d-foy"
      ],
      "url" : "https://www.perl.com/article/announcing-perl-7"
   },
   {
      "description" : "A curated look at May's new CPAN uploads",
      "categories" : "cpan",
      "tags" : [
         "libfido2",
         "mapzen",
         "nauty",
         "mojolicious",
         "dancer2",
         "catalyst",
         "nauty",
         "karabiner-elements",
         "digi-id",
         "platypus",
         "json-schema"
      ],
      "title" : "What's new on CPAN - May 2020",
      "url_path" : "/article/what-s-new-on-cpan---may-2020",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1592660405,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---may-2020"
   },
   {
      "categories" : "community",
      "description" : "The person behind the news of Perl",
      "tags" : [
         "perl-maven",
         "code-maven",
         "perl-weekly",
         "interview"
      ],
      "title" : "The Perl Ambassador: Gabor Szabo",
      "url_path" : "/article/the-perl-ambassador-gabor-szabo",
      "authors" : [
         "mohammad-anwar"
      ],
      "epoch" : 1592206200,
      "url" : "https://www.perl.com/article/the-perl-ambassador-gabor-szabo"
   },
   {
      "title" : "Perl Hacks, Perl School, and the future of Perl publishing",
      "tags" : [
         "perl-school",
         "perl-hacks",
         "interview",
         "epub",
         "mobi",
         "pdf"
      ],
      "description" : "How an independent publisher is releasing new Perl books",
      "categories" : "community",
      "url" : "https://www.perl.com/article/perl-hacks-perl-school-and-the-future-of-perl-publishing",
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/perl-hacks-perl-school-and-the-future-of-perl-publishing",
      "epoch" : 1590659043
   },
   {
      "tags" : [
         "matrix",
         "docker",
         "influxdb",
         "termux",
         "yahoo-finance",
         "json-schema",
         "moose",
         "moo",
         "dbic",
         "ipc",
         "dancer2",
         "mojolicious",
         "kelp"
      ],
      "title" : "What's new on CPAN - April 2020",
      "categories" : "cpan",
      "description" : "A curated look at April's new CPAN uploads",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---april-2020",
      "url_path" : "/article/what-s-new-on-cpan---april-2020",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1589939613
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---march-2020",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---march-2020",
      "epoch" : 1588122357,
      "title" : "What's new on CPAN - March 2020",
      "tags" : [
         "recaptcha",
         "telegram",
         "lastfm",
         "openvas",
         "elasticsearch",
         "healthcheck",
         "covid-19",
         "xml",
         "catalyst",
         "mojolicious"
      ],
      "categories" : "cpan",
      "description" : "A curated look at March's new CPAN uploads"
   },
   {
      "authors" : [
         "andrew-shitov"
      ],
      "url_path" : "/article/observing-coronavirus-with-raku",
      "epoch" : 1585817100,
      "url" : "https://www.perl.com/article/observing-coronavirus-with-raku",
      "categories" : "raku",
      "description" : "Using the Raku programming language to process and display statistical data",
      "tags" : [
         "covid-19",
         "data-processing",
         "csv",
         "johns-hopkins",
         "perl6"
      ],
      "title" : "Observing Coronavirus Pandemic with Raku"
   },
   {
      "description" : "Lot's of new distributions were added to CPAN in February: Git, Windows, a new OO framework, an alternative PerlIO and more feature.",
      "categories" : "cpan",
      "title" : "What's new on CPAN - February 2020",
      "tags" : [
         "gimp",
         "recaptcha",
         "sendgrid",
         "neo4j",
         "mosmix",
         "git",
         "rundeck",
         "zydeco",
         "raycast",
         "kelp",
         "plack",
         "var-mystic",
         "test-arrow"
      ],
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---february-2020",
      "epoch" : 1583974007,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---february-2020"
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---january-2020",
      "url_path" : "/article/what-s-new-on-cpan---january-2020",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1581298127,
      "tags" : [
         "prometheus",
         "abuse-ipdb",
         "mailgun",
         "toml",
         "fidonet",
         "libshout",
         "systemd",
         "mojolicious"
      ],
      "title" : "What's new on CPAN - January 2020",
      "categories" : "cpan",
      "description" : "A curated look at January's new CPAN uploads"
   },
   {
      "url" : "https://www.perl.com/article/json-unicode-and-perl-oh-my-",
      "url_path" : "/article/json-unicode-and-perl-oh-my-",
      "authors" : [
         "felipe-gasper"
      ],
      "epoch" : 1580328704,
      "tags" : [
         "unicode",
         "json",
         "cbor",
         "utf8"
      ],
      "title" : "JSON, Unicode, and Perl â¦ Oh My!",
      "description" : "A look at this popular serializationâs relationship with Perl",
      "categories" : "development"
   },
   {
      "tags" : [
         "linux",
         "gpio",
         "raspberry-pi",
         "rpi",
         "raspberry_pi",
         "rockpi"
      ],
      "title" : "The Rock Pi S Review",
      "categories" : "hardware",
      "description" : "How to get GPIO Input with Linux and Perl without a library",
      "url" : "https://www.perl.com/article/the-rock-pi-s-or-how-to-get-gpio-input-without-a-library",
      "epoch" : 1579775940,
      "authors" : [
         "timm-murray"
      ],
      "url_path" : "/article/the-rock-pi-s-or-how-to-get-gpio-input-without-a-library"
   },
   {
      "title" : "Porting a Dancer plugin to Dancer2",
      "tags" : [
         "dancer",
         "dancer2",
         "perl",
         "perl-5",
         "perl-programming",
         "web-development",
         "porting",
         "plugin"
      ],
      "description" : "How I ported a plugin without having to know it all first",
      "categories" : "development",
      "url" : "https://www.perl.com/article/porting-a-dancer-plugin-to-dancer2",
      "authors" : [
         "christopher-white"
      ],
      "url_path" : "/article/porting-a-dancer-plugin-to-dancer2",
      "epoch" : 1578663420
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---december-2019",
      "url_path" : "/article/what-s-new-on-cpan---december-2019",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1578255570,
      "title" : "What's new on CPAN - December 2019",
      "tags" : [
         "neovim",
         "thumbalizr",
         "nanoid",
         "mojolicious",
         "qmail",
         "path-this",
         "aws",
         "github"
      ],
      "categories" : "cpan",
      "description" : "A curated look at December's new CPAN uploads"
   },
   {
      "description" : "A curated look at November's new CPAN uploads",
      "categories" : "cpan",
      "tags" : [
         "metabolomics",
         "owasp",
         "codecov-io",
         "portable-loader",
         "task-codemodules",
         "minecraft",
         "rcon",
         "app-retropan",
         "eggdrop",
         "msgpack",
         "zeek"
      ],
      "title" : "What's new on CPAN - November 2019",
      "epoch" : 1576096260,
      "url_path" : "/article/what-s-new-on-cpan---november-2019",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---november-2019"
   },
   {
      "categories" : "cpan",
      "description" : "A curated look at October's new CPAN uploads",
      "tags" : [
         "azure",
         "google-restapi",
         "kafka",
         "mysqldump",
         "mojolicious"
      ],
      "title" : "What's new on CPAN - October 2019",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---october-2019",
      "epoch" : 1573862965,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---october-2019"
   },
   {
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/inspecting-catalyst",
      "epoch" : 1573468447,
      "url" : "https://www.perl.com/article/inspecting-catalyst",
      "categories" : "web",
      "description" : "What routes does your Catalyst app respond to?",
      "tags" : [
         "catalyst",
         "metacpan"
      ],
      "title" : "Inspecting Catalyst"
   },
   {
      "url_path" : "/article/my-perl-wishlist-invariant-sigils-part-1",
      "authors" : [
         "christopher-white"
      ],
      "epoch" : 1572178020,
      "url" : "https://www.perl.com/article/my-perl-wishlist-invariant-sigils-part-1",
      "categories" : "programming-languages",
      "description" : "The change I would most like to see in Perl 5, and why it might not happen",
      "tags" : [
         "perl-internals",
         "syntax",
         "internals",
         "compiler",
         "perl-5",
         "language",
         "language-design",
         "sigil",
         "parser",
         "parsing",
         "perl-parsing",
         "core",
         "c"
      ],
      "title" : "My Perl Wishlist: Invariant Sigils (Part 1)"
   },
   {
      "tags" : [
         "ipfinder",
         "discord",
         "vmware",
         "uuid",
         "select",
         "tail-recursion",
         "long-jump",
         "obo",
         "gaf"
      ],
      "title" : "What's new on CPAN - September 2019",
      "categories" : "cpan",
      "description" : "A curated look at September's new CPAN uploads",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---september-2019",
      "epoch" : 1570892798,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---september-2019"
   },
   {
      "epoch" : 1569506176,
      "url_path" : "/article/hacktoberfest-2019",
      "authors" : [
         "brian-d-foy"
      ],
      "url" : "https://www.perl.com/article/hacktoberfest-2019",
      "description" : "Support Open Source and get a free t-shirt",
      "categories" : "community",
      "tags" : [
         "hacktoberfest",
         "github"
      ],
      "title" : "Hacktoberfest 2019"
   },
   {
      "epoch" : 1568890807,
      "url_path" : "/article/creating-ip-address-tools-from-scratch",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/creating-ip-address-tools-from-scratch",
      "description" : "Playing with IP addresses for fun",
      "categories" : "development",
      "title" : "Creating IP address tools from scratch",
      "tags" : [
         "ipv4",
         "cidr",
         "whois",
         "ipv6",
         "net-ip-xs"
      ]
   },
   {
      "title" : "What's new on CPAN - August 2019",
      "tags" : [
         "shippo",
         "cloudtasks",
         "plantuml",
         "puppet",
         "ldap",
         "curses",
         "checkpass",
         "xoauth2",
         "game-of-life",
         "pango",
         "pdf",
         "cairo",
         "mojolicious",
         "test2"
      ],
      "description" : "A curated look at August's new CPAN uploads",
      "categories" : "cpan",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---august-2019",
      "epoch" : 1568135904,
      "url_path" : "/article/what-s-new-on-cpan---august-2019",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---july-2019",
      "url_path" : "/article/what-s-new-on-cpan---july-2019",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1566309837,
      "title" : "What's new on CPAN - July 2019",
      "tags" : [
         "paws",
         "news-api",
         "cpanfile",
         "io-blocksync",
         "log4cplus",
         "mojo",
         "iperf"
      ],
      "description" : "A curated look at July's new CPAN uploads",
      "categories" : "cpan"
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---june-2019",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---june-2019",
      "epoch" : 1564101079,
      "title" : "What's new on CPAN - June 2019",
      "tags" : [
         "voipms",
         "wordsapi",
         "yaml",
         "chromaprint",
         "endoscope",
         "rpi",
         "mozilla",
         "plack"
      ],
      "categories" : "cpan",
      "description" : "A curated look at June's new CPAN uploads"
   },
   {
      "description" : "Escaping program arguments in all the wrong ways",
      "categories" : "data",
      "title" : "Quoting the Shell",
      "tags" : [
         "macos",
         "pathfinder",
         "tag",
         "shell",
         "quoting"
      ],
      "epoch" : 1560805200,
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/quoting-the-shell",
      "url" : "https://www.perl.com/article/quoting-the-shell"
   },
   {
      "tags" : [
         "s3",
         "backblaze",
         "mediafire",
         "grnoc",
         "cbor",
         "curio",
         "junit"
      ],
      "title" : "What's new on CPAN - May 2019",
      "description" : "A curated look at May's new CPAN uploads",
      "categories" : "cpan",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---may-2019",
      "url_path" : "/article/what-s-new-on-cpan---may-2019",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1560211468
   },
   {
      "url" : "https://www.perl.com/article/how-do-i-open-this-",
      "epoch" : 1559586402,
      "authors" : [
         "olaf-alders"
      ],
      "url_path" : "/article/how-do-i-open-this-",
      "tags" : [
         "vim",
         "emacs",
         "pico",
         "nano",
         "git",
         "github"
      ],
      "title" : "How do I Open This?",
      "categories" : "development",
      "description" : "Find and open files with ease"
   },
   {
      "tags" : [
         "webster",
         "dictionary",
         "vim",
         "vimscript"
      ],
      "title" : "Using the right dictionary with Perl and Vim",
      "categories" : "development",
      "description" : "Parsing Webster's 1913 classic and integrating it into an editor",
      "url" : "https://www.perl.com/article/using-the-right-dictionary-with-perl-and-vim",
      "epoch" : 1559205917,
      "url_path" : "/article/using-the-right-dictionary-with-perl-and-vim",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "categories" : "cpan",
      "description" : "A curated look at April's new CPAN uploads",
      "title" : "What's new on CPAN - April 2019",
      "tags" : [
         "redfish",
         "checkpoint",
         "paubox",
         "cbor",
         "future-io",
         "starwoman",
         "furl-psgi",
         "geo-index"
      ],
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---april-2019",
      "epoch" : 1557189096,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---april-2019"
   },
   {
      "epoch" : 1556386123,
      "url_path" : "/article/fork-yeah-part-2",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/fork-yeah-part-2",
      "categories" : "development",
      "description" : "More concurrency patterns with fork",
      "title" : "Fork yeah! Part 2",
      "tags" : [
         "fork",
         "concurrency",
         "waitpid",
         "posix",
         "wnohang",
         "wuntraced",
         "wifstopped"
      ]
   },
   {
      "description" : "A curated look at March's new CPAN uploads",
      "categories" : "cpan",
      "tags" : [
         "rsync",
         "slack",
         "pixela",
         "speakerdeck",
         "aws-lambda",
         "ggplot",
         "mojolicious",
         "catalyst",
         "tk"
      ],
      "title" : "What's new on CPAN - March 2019",
      "epoch" : 1554946888,
      "url_path" : "/article/what-s-new-on-cpan---march-2019",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---march-2019"
   },
   {
      "epoch" : 1554756383,
      "url_path" : "/article/consistency-in-tmtowtdi-perl",
      "authors" : [
         "alexandru-strajeriu"
      ],
      "url" : "https://www.perl.com/article/consistency-in-tmtowtdi-perl",
      "categories" : "development",
      "description" : "Some tips for improving consistency in shared Perl codebases",
      "tags" : [
         "git",
         "perlcritic",
         "perltidy"
      ],
      "title" : "Consistency in TMTOWTDI Perl"
   },
   {
      "url" : "https://www.perl.com/article/fork-yeah-",
      "url_path" : "/article/fork-yeah-",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1554120051,
      "title" : "Fork yeah!",
      "tags" : [
         "fork",
         "concurrency",
         "parallelism",
         "waitpid"
      ],
      "categories" : "development",
      "description" : "How to use concurrency safely to make your code faster"
   },
   {
      "title" : "What's new on CPAN - February 2019",
      "tags" : [
         "epub",
         "pkg-config",
         "taxjar",
         "datasciencetoolkit",
         "ipapi",
         "ipstack",
         "geoipify",
         "libvlc",
         "test2",
         "ffi"
      ],
      "description" : "A curated look at February's new CPAN uploads",
      "categories" : "cpan",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---february-2019",
      "epoch" : 1552352230,
      "url_path" : "/article/what-s-new-on-cpan---february-2019",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "url" : "https://www.perl.com/article/how-to-get-pull-request-accepted-",
      "epoch" : 1551818100,
      "url_path" : "/article/how-to-get-pull-request-accepted-",
      "authors" : [
         "mohammad-anwar"
      ],
      "title" : "How to get your Pull Request accepted",
      "tags" : [
         "github",
         "metacpan"
      ],
      "categories" : "cpan",
      "description" : "Sharing my secrets to getting a PR approved"
   },
   {
      "url" : "https://www.perl.com/article/the-perl-conference-in-pittsburgh-cfp",
      "authors" : [
         "dawn-wallis"
      ],
      "url_path" : "/article/the-perl-conference-in-pittsburgh-cfp",
      "epoch" : 1550168203,
      "tags" : [
         "perl-conference",
         "tpc",
         "pittsburgh"
      ],
      "title" : "The Perl Conference in Pittsburgh - Call For Presentations",
      "categories" : "community",
      "description" : "Submit your talk proposals for the Summer conference in the Steel City!"
   },
   {
      "epoch" : 1549331301,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---january-2019",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---january-2019",
      "categories" : "cpan",
      "description" : "A curated look at January's new CPAN uploads",
      "tags" : [
         "kubernetes",
         "aws-lambda",
         "broadworks",
         "mojolicious"
      ],
      "title" : "What's new on CPAN - January 2019"
   },
   {
      "title" : "Find Relationships Quickly in Data With Chart::Plot",
      "tags" : [
         "chart-plot",
         "mlb",
         "gd",
         "baseball"
      ],
      "description" : "This lightweight module powers through data",
      "categories" : "science",
      "url" : "https://www.perl.com/article/find-relationships-quickly-in-data-with-chart-plot",
      "epoch" : 1548085299,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/find-relationships-quickly-in-data-with-chart-plot"
   },
   {
      "url" : "https://www.perl.com/article/spidering-websites-with-headless-chrome-and-selenium",
      "url_path" : "/article/spidering-websites-with-headless-chrome-and-selenium",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1547411497,
      "title" : "Spidering websites with Headless Chrome and Selenium",
      "tags" : [
         "chrome",
         "selenium",
         "chromedriver",
         "selenium-remote-driver",
         "headless",
         "spider"
      ],
      "categories" : "web",
      "description" : "How I setup and controlled headless Chrome with Perl"
   },
   {
      "epoch" : 1546827404,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---december-2018",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---december-2018",
      "description" : "A curated look at December's new CPAN uploads",
      "categories" : "cpan",
      "tags" : [
         "time-piece",
         "cloudhealth",
         "dns",
         "aws",
         "mathml",
         "itex"
      ],
      "title" : "What's new on CPAN - December 2018"
   },
   {
      "epoch" : 1545167295,
      "url_path" : "/article/what-s-new-on-cpan---november-2018",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---november-2018",
      "description" : "A curated look at November's new CPAN uploads",
      "categories" : "cpan",
      "title" : "What's new on CPAN - November 2018",
      "tags" : [
         "cisco",
         "abusix",
         "neo4j",
         "crossref",
         "mojolicious",
         "plerd"
      ]
   },
   {
      "url" : "https://www.perl.com/article/the-advent-blogs-are-here",
      "epoch" : 1544440809,
      "url_path" : "/article/the-advent-blogs-are-here",
      "authors" : [
         "david-farrell"
      ],
      "tags" : [],
      "title" : "The advent blogs roundup",
      "categories" : "community",
      "description" : "24 days of new Perl articles"
   },
   {
      "title" : "Validating untrusted input: numbers",
      "tags" : [
         "scalar-util",
         "regexp-common",
         "dualvar",
         "taint"
      ],
      "categories" : "development",
      "description" : "Common techniques and edge cases",
      "url" : "https://www.perl.com/article/validating-untrusted-input-numbers",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/validating-untrusted-input-numbers",
      "epoch" : 1543828238
   },
   {
      "authors" : [
         "dave-jacoby"
      ],
      "url_path" : "/article/perl-and-cgi",
      "epoch" : 1542018968,
      "url" : "https://www.perl.com/article/perl-and-cgi",
      "description" : "The CGI module helped Perl grow when the web first blew up. Now it's out of Core and discouraged. What happened?",
      "categories" : "web",
      "tags" : [
         "cgi",
         "mvc",
         "catalyst",
         "dancer",
         "mojolicious",
         "template-toolkit"
      ],
      "title" : "Perl and CGI"
   },
   {
      "title" : "What's new on CPAN - October 2018",
      "tags" : [
         "avro",
         "kafka",
         "azure",
         "google-drive",
         "mattermost",
         "pyzor",
         "json-patch",
         "pdl",
         "consul",
         "catmandu"
      ],
      "categories" : "cpan",
      "description" : "A curated look at October's new CPAN uploads",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---october-2018",
      "epoch" : 1541559143,
      "url_path" : "/article/what-s-new-on-cpan---october-2018",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "url" : "https://www.perl.com/article/use-terminal-colors-to-distinguish-information",
      "epoch" : 1540325256,
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/use-terminal-colors-to-distinguish-information",
      "tags" : [
         "usps",
         "ansi",
         "term-ansicolor",
         "terminal"
      ],
      "title" : "Use terminal colors to distinguish information",
      "description" : "Term::ANSIColor makes formatting terminal output easy",
      "categories" : "development"
   },
   {
      "title" : "What's new on CPAN - September 2018",
      "tags" : [
         "onesky",
         "patron",
         "openapi",
         "dbus",
         "mojolicious",
         "libcurl"
      ],
      "description" : "A curated look at September's new CPAN uploads",
      "categories" : "cpan",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---september-2018",
      "epoch" : 1539117747,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---september-2018"
   },
   {
      "title" : "Support Perl.com and get a free t-shirt with hacktoberfest",
      "tags" : [
         "hacktoberfest"
      ],
      "categories" : "community",
      "description" : "Hacktoberfest 2018 is here",
      "url" : "https://www.perl.com/article/support-perl-com-and-get-a-free-t-shirt-with-hacktoberfest",
      "url_path" : "/article/support-perl-com-and-get-a-free-t-shirt-with-hacktoberfest",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1538379040
   },
   {
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/perl-foreach-loops",
      "epoch" : 1537696667,
      "url" : "https://www.perl.com/article/perl-foreach-loops",
      "categories" : "syntax",
      "description" : "The basics, the gotchas and advanced techniques",
      "tags" : [
         "foreach",
         "loop",
         "refaliasing"
      ],
      "title" : "Perl foreach loops"
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---august-2018",
      "url_path" : "/article/what-s-new-on-cpan---august-2018",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1536051803,
      "tags" : [
         "yandex",
         "dovecot",
         "sqlite",
         "tau-station",
         "anki",
         "gcloud",
         "babel",
         "billion-graves"
      ],
      "title" : "What's new on CPAN - August 2018",
      "description" : "A curated look at August's new CPAN uploads",
      "categories" : "cpan"
   },
   {
      "url" : "https://www.perl.com/article/how-to-write-your-first-article-for-perl-com",
      "epoch" : 1534404529,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/how-to-write-your-first-article-for-perl-com",
      "tags" : [
         "writing",
         "contributing",
         "perldotcom"
      ],
      "title" : "How to write your first article for Perl.com",
      "categories" : "tutorials",
      "description" : "Our tools make it easier than you might think"
   },
   {
      "description" : "A curated look at July's new CPAN uploads",
      "categories" : "cpan",
      "title" : "What's new on CPAN - July 2018",
      "tags" : [
         "haproxy",
         "wordpress",
         "slowquitapps",
         "telegraf",
         "git",
         "mojolicious",
         "nhl"
      ],
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---july-2018",
      "epoch" : 1533494415,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---july-2018"
   },
   {
      "authors" : [
         "mohammad-anwar"
      ],
      "url_path" : "/article/how-to-become-cpan-contributor-part-2",
      "epoch" : 1533154800,
      "url" : "https://www.perl.com/article/how-to-become-cpan-contributor-part-2",
      "description" : "How to fix common problems and what to watch out for",
      "categories" : "cpan",
      "title" : "How to become a CPAN contributor - part 2",
      "tags" : [
         "cpan",
         "github",
         "kwalitee",
         "dist-zilla",
         "module-build",
         "extutils-makemaker"
      ]
   },
   {
      "tags" : [
         "require",
         "p5p",
         "perlguts"
      ],
      "title" : "Patching Perl: loading modules that return false",
      "categories" : "perl-internals",
      "description" : "Removing of one of require's most annoying behaviors",
      "url" : "https://www.perl.com/article/patching-perl-loading-modules-that-return-false",
      "epoch" : 1532336497,
      "url_path" : "/article/patching-perl-loading-modules-that-return-false",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "epoch" : 1531253282,
      "authors" : [
         "dawn-wallis"
      ],
      "url_path" : "/article/call-for-perl-conference-photos",
      "url" : "https://www.perl.com/article/call-for-perl-conference-photos",
      "description" : "Seeking pictures from the past 20 years of Perl",
      "categories" : "community",
      "tags" : [
         "yapc",
         "tpc"
      ],
      "title" : "Call for Perl Conference North America Photos"
   },
   {
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---june-2018",
      "epoch" : 1530698400,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---june-2018",
      "categories" : "cpan",
      "description" : "A curated look at June's new CPAN uploads",
      "title" : "What's new on CPAN - June 2018",
      "tags" : [
         "amex",
         "microsoft",
         "elasticsearch",
         "devel-callparser",
         "opengl",
         "gameboy",
         "mattermost",
         "tl-1",
         "aws",
         "rpi",
         "sendgrid",
         "ynab"
      ]
   },
   {
      "url_path" : "/article/saying-goodbye-to-search-cpan-org",
      "authors" : [
         "olaf-alders"
      ],
      "epoch" : 1530032446,
      "url" : "https://www.perl.com/article/saying-goodbye-to-search-cpan-org",
      "description" : "",
      "categories" : "cpan",
      "title" : "Saying Goodbye to search.cpan.org",
      "tags" : [
         "metacpan",
         "plack",
         "minion",
         "catalyst"
      ]
   },
   {
      "url" : "https://www.perl.com/article/perl-com-past-and-future-at-tpc-na",
      "url_path" : "/article/perl-com-past-and-future-at-tpc-na",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1529229472,
      "tags" : [
         "tpc",
         "tpc-na",
         "slc"
      ],
      "title" : "Perl.com: past, present and future at TPC::NA",
      "categories" : "community",
      "description" : "I'm speaking at The Perl Conference in Salt Lake City"
   },
   {
      "url" : "https://www.perl.com/article/writing-new-testing-tools-with-test2",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/writing-new-testing-tools-with-test2",
      "epoch" : 1528817200,
      "title" : "Writing new testing tools with Test2",
      "tags" : [
         "test2",
         "test2-tools-skipuntil"
      ],
      "categories" : "testing",
      "description" : "Extending Perl's powerful new test framework"
   },
   {
      "tags" : [
         "qgoda",
         "bing",
         "pokemon",
         "dot",
         "test2",
         "kubernetes",
         "docker",
         "swapi"
      ],
      "title" : "What's new on CPAN - May 2018",
      "categories" : "cpan",
      "description" : "A curated look at May's new CPAN uploads",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---may-2018",
      "epoch" : 1528063435,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---may-2018"
   },
   {
      "categories" : "community",
      "description" : "Find out what over 1,000 Perl developers think about their language",
      "title" : "The 2018 Perl Developer Survey Results",
      "tags" : [
         "perl-survey",
         "evozon",
         "2018"
      ],
      "epoch" : 1526937994,
      "authors" : [
         "samuel-andras"
      ],
      "url_path" : "/article/the-2018-perl-developer-survey-results",
      "url" : "https://www.perl.com/article/the-2018-perl-developer-survey-results"
   },
   {
      "url" : "https://www.perl.com/article/the-perl-conference-north-america-is-just-around-the-corner",
      "url_path" : "/article/the-perl-conference-north-america-is-just-around-the-corner",
      "authors" : [
         "dawn-wallis"
      ],
      "epoch" : 1526371709,
      "title" : "The Perl Conference North America is Just Around the Corner",
      "tags" : [
         "yapc",
         "tpc",
         "salt-lake-city",
         "2018"
      ],
      "description" : "A reminder of what's going down in Salt Lake City this June",
      "categories" : "community"
   },
   {
      "url" : "https://www.perl.com/article/how-to-become-cpan-contributor",
      "authors" : [
         "mohammad-anwar"
      ],
      "url_path" : "/article/how-to-become-cpan-contributor",
      "epoch" : 1526244388,
      "title" : "How to become a CPAN contributor",
      "tags" : [
         "cpan",
         "github",
         "kwalitee"
      ],
      "categories" : "community",
      "description" : "Tips and tricks to become a CPAN contributor"
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---april-2018",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---april-2018",
      "epoch" : 1525724013,
      "tags" : [
         "rslinux",
         "robinhood",
         "menlo",
         "data-cuid",
         "urandom",
         "zfssa"
      ],
      "title" : "What's new on CPAN - April 2018",
      "description" : "A curated look at April's new CPAN uploads",
      "categories" : "cpan"
   },
   {
      "url" : "https://www.perl.com/article/xs-utility-routines-that-are-good-to-know",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/xs-utility-routines-that-are-good-to-know",
      "epoch" : 1525120485,
      "tags" : [
         "xs",
         "utf8",
         "libpostal",
         "tie",
         "boot"
      ],
      "title" : "XS utility routines that are good to know",
      "description" : "XS functions you'll use again and again",
      "categories" : "tutorials"
   },
   {
      "title" : "Participate in the 2018 Perl developer survey",
      "tags" : [
         "built-in-perl",
         "survey"
      ],
      "categories" : "community",
      "description" : "Help us understand the state of Perl",
      "url" : "https://www.perl.com/article/participate-in-the-2018-perl-developer-survey",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/participate-in-the-2018-perl-developer-survey",
      "epoch" : 1523999343
   },
   {
      "title" : "What's new on CPAN - March 2018",
      "tags" : [
         "duktape",
         "firebase",
         "freetype",
         "raspberry-pi",
         "anyevent",
         "markua",
         "mojolicious"
      ],
      "description" : "A curated look at March's new CPAN uploads",
      "categories" : "cpan",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---march-2018",
      "epoch" : 1522705695,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---march-2018"
   },
   {
      "categories" : "tutorials",
      "description" : "Writing is easier when you know the goal",
      "title" : "How to find a programming topic to write about",
      "tags" : [
         "writing",
         "contributing"
      ],
      "epoch" : 1522100437,
      "url_path" : "/article/how-to-find-a-programming-topic-to-write-about",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/how-to-find-a-programming-topic-to-write-about"
   },
   {
      "url" : "https://www.perl.com/article/hidden-gems-of-perl-com-vol-2",
      "url_path" : "/article/hidden-gems-of-perl-com-vol-2",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1520846646,
      "title" : "Hidden Gems of Perl.com Vol.2",
      "tags" : [
         "hidden-gems",
         "style"
      ],
      "description" : "Classic articles from Perl.com's archive",
      "categories" : "perldotcom"
   },
   {
      "url_path" : "/article/what-s-new-on-cpan---february-2018",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1520280605,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---february-2018",
      "description" : "A curated look at February's new CPAN uploads",
      "categories" : "cpan",
      "tags" : [
         "twilio",
         "jsonapi",
         "eiffel",
         "github",
         "spid",
         "bit-torrent",
         "pod"
      ],
      "title" : "What's new on CPAN - February 2018"
   },
   {
      "categories" : "networking",
      "description" : "Identifying which routers process an IP request",
      "title" : "How does traceroute work?",
      "tags" : [
         "traceroute",
         "udp",
         "tcp",
         "icmp"
      ],
      "epoch" : 1519814429,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/how-does-traceroute-work-",
      "url" : "https://www.perl.com/article/how-does-traceroute-work-"
   },
   {
      "title" : "P5P update: Smarter Match",
      "tags" : [
         "p5p",
         "smartmatch"
      ],
      "categories" : "perl-internals",
      "description" : "Explaining the recent smartmatch confusion",
      "url" : "https://www.perl.com/article/p5p-update-smarter-match",
      "epoch" : 1519288236,
      "url_path" : "/article/p5p-update-smarter-match",
      "authors" : [
         "sawyer-x"
      ]
   },
   {
      "categories" : "cpan",
      "description" : "How to install Perl on your computer, or how to use a Docker image instead",
      "tags" : [
         "pull-request",
         "git",
         "github",
         "cpan",
         "perl",
         "open-source"
      ],
      "title" : "Setup your computer for CPAN-PRC",
      "epoch" : 1519254000,
      "url_path" : "/article/setup-your-computer-for-cpan-prc",
      "authors" : [
         "kivanc-yazan"
      ],
      "url" : "https://www.perl.com/article/setup-your-computer-for-cpan-prc"
   },
   {
      "description" : "Using Perl to analyze (and optimize) Chrome's heap",
      "categories" : "community",
      "tags" : [
         "real-world-perl",
         "chrome",
         "heap"
      ],
      "title" : "Real World Perl: Analyze Chrome's heap",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/real-world-perl-analyze-chrome-s-heap",
      "epoch" : 1519065465,
      "url" : "https://www.perl.com/article/real-world-perl-analyze-chrome-s-heap"
   },
   {
      "epoch" : 1518535356,
      "authors" : [
         "andrew-shitov"
      ],
      "url_path" : "/article/perl-6-grammers-part-1",
      "url" : "https://www.perl.com/article/perl-6-grammers-part-1",
      "description" : "Parsing number formats",
      "categories" : "perl-6",
      "title" : "Perl 6 Grammars, Part 1",
      "tags" : [
         "grammars",
         "parsing",
         "lexing"
      ]
   },
   {
      "tags" : [
         "perldoc",
         "cpandoc",
         "pod",
         "metacpan",
         "sh"
      ],
      "title" : "Reading remote documentation",
      "description" : "How to read the documentation for modules you don't have",
      "categories" : "cpan",
      "url" : "https://www.perl.com/article/reading-remote-documentation",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/reading-remote-documentation",
      "epoch" : 1518381717
   },
   {
      "url" : "https://www.perl.com/article/how-strong-is-your-password-",
      "epoch" : 1517906111,
      "url_path" : "/article/how-strong-is-your-password-",
      "authors" : [
         "david-farrell"
      ],
      "title" : "How strong is your password?",
      "tags" : [
         "zxcvbn",
         "dropbox",
         "entropy",
         "data-password-zxcvbn"
      ],
      "description" : "Password strength checking with zxcvbn",
      "categories" : "security"
   },
   {
      "categories" : "cpan",
      "description" : "A curated look at January's new CPAN uploads",
      "title" : "What's new on CPAN - January 2018",
      "tags" : [
         "binance",
         "bitcoin",
         "acme",
         "mpd",
         "cxml",
         "xml-libxml",
         "statsd"
      ],
      "epoch" : 1517677066,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---january-2018",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---january-2018"
   },
   {
      "tags" : [
         "go",
         "threads",
         "microsoft",
         "java",
         "router-xs",
         "catalyst",
         "kelp",
         "text-xslate"
      ],
      "title" : "When Perl isn't fast enough",
      "categories" : "programming-languages",
      "description" : "Losing in a competition to Java and Go",
      "url" : "https://www.perl.com/article/when-perl-isn-t-fast-enough",
      "epoch" : 1517176237,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/when-perl-isn-t-fast-enough"
   },
   {
      "tags" : [
         "pull-request",
         "git",
         "github",
         "cpan",
         "perl",
         "open-source"
      ],
      "title" : "Why should you join CPAN-PRC?",
      "description" : "The Pull Request Challenge is an excellent opportunity to learn & give back at the same time",
      "categories" : "cpan",
      "url" : "https://www.perl.com/article/why-should-you-join-cpan-prc",
      "authors" : [
         "kivanc-yazan"
      ],
      "url_path" : "/article/why-should-you-join-cpan-prc",
      "epoch" : 1516872180
   },
   {
      "epoch" : 1516694424,
      "url_path" : "/article/free-wildcard-tls-with-net-acme2-and-let-s-encrypt",
      "authors" : [
         "felipe-gasper"
      ],
      "url" : "https://www.perl.com/article/free-wildcard-tls-with-net-acme2-and-let-s-encrypt",
      "description" : "Wildcards for all!",
      "categories" : "security",
      "title" : "Free Wildcard TLS with Net::ACME2 and Letâs Encrypt",
      "tags" : [
         "tls",
         "ssl",
         "networking",
         "net-acme",
         "net-acme2",
         "acme"
      ]
   },
   {
      "epoch" : 1516266777,
      "url_path" : "/article/real-world-perl-measuring-working-set-size",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/real-world-perl-measuring-working-set-size",
      "description" : "Using Perl to measure Linux memory use for Meltdown patch analysis",
      "categories" : "community",
      "tags" : [
         "wss",
         "real-world-perl",
         "brendan-gregg",
         "meltdown",
         "kpti"
      ],
      "title" : "Real World Perl: Measuring Working Set Size"
   },
   {
      "epoch" : 1516177347,
      "authors" : [
         "elizabeth-mattijsen"
      ],
      "url_path" : "/article/an-open-letter-to-the-perl-community",
      "url" : "https://www.perl.com/article/an-open-letter-to-the-perl-community",
      "categories" : "perl-6",
      "description" : "How to kickstart migration of Perl 5 to Perl 6",
      "tags" : [
         "perl-5",
         "p5p",
         "porting"
      ],
      "title" : "An Open Letter to the Perl Community"
   },
   {
      "description" : "Write functions that execute at the speed of C",
      "categories" : "tutorials",
      "tags" : [
         "xs",
         "stdint.h",
         "perlapi"
      ],
      "title" : "Writing your own XS functions",
      "epoch" : 1515745720,
      "url_path" : "/article/writing-your-own-xs-functions",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/writing-your-own-xs-functions"
   },
   {
      "epoch" : 1515402764,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---december-2017",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---december-2017",
      "categories" : "cpan",
      "description" : "A curated look at December's new CPAN uploads",
      "tags" : [
         "diff",
         "iex",
         "extutils-makemaker",
         "gitlab",
         "base91",
         "libjpeg",
         "u2f",
         "modbus"
      ],
      "title" : "What's new on CPAN - December 2017"
   },
   {
      "title" : "Hidden Gems of Perl.com",
      "tags" : [
         "hidden-gems",
         "state-of-the-onion",
         "perlguts",
         "perl-style",
         "perl-internals",
         "perl-6"
      ],
      "description" : "Classic articles from Perl.com's archive",
      "categories" : "perldotcom",
      "url" : "https://www.perl.com/article/hidden-gems-of-perl-com",
      "epoch" : 1515056406,
      "url_path" : "/article/hidden-gems-of-perl-com",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "url_path" : "/article/a-slow-boat-to-data",
      "authors" : [
         "nadim-khemir"
      ],
      "epoch" : 1514798907,
      "url" : "https://www.perl.com/article/a-slow-boat-to-data",
      "description" : "Dumping Perl 6 data structures",
      "categories" : "perl-6",
      "title" : "A slow boat to data",
      "tags" : [
         "data-dumper",
         "data-dump-tree"
      ]
   },
   {
      "tags" : [
         "adler2",
         "youtube",
         "beanstalk",
         "deathbycaptcha",
         "pokemon",
         "martian",
         "starman",
         "windows",
         "json-schema",
         "kerberos",
         "s3"
      ],
      "title" : "What's new on CPAN - November 2017",
      "description" : "A curated look at November's new CPAN uploads",
      "categories" : "cpan",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---november-2017",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---november-2017",
      "epoch" : 1513961822
   },
   {
      "epoch" : 1512570844,
      "url_path" : "/article/welcome-back-perl-com",
      "authors" : [
         "jim-brandt",
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/welcome-back-perl-com",
      "description" : "The updated site is better than ever",
      "categories" : "community",
      "title" : "Welcome back, Perl.com",
      "tags" : [
         "news",
         "perldotcom"
      ]
   },
   {
      "tags" : [
         "bitbucket",
         "apache",
         "yandex",
         "seabass",
         "dist-zilla",
         "websocket",
         "catalyst",
         "mojolicious",
         "dancer2",
         "type-tiny"
      ],
      "title" : "What's new on CPAN - October 2017",
      "categories" : "cpan",
      "description" : "A curated look at October's new CPAN uploads",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---october-2017",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---october-2017",
      "epoch" : 1510218464
   },
   {
      "epoch" : 1509047797,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/monitoring-my-phone-s-internet-activity-with-netflows-and-perl",
      "url" : "https://www.perl.com/article/monitoring-my-phone-s-internet-activity-with-netflows-and-perl",
      "description" : "Do you know who your phone is talking to?",
      "categories" : "networking",
      "title" : "Monitoring my phone's internet activity with DD-WRT and Perl",
      "tags" : [
         "dd-wrt",
         "linux",
         "netflows",
         "rflow",
         "whois",
         "ntop",
         "net-whois-ip",
         "data-netflow"
      ]
   },
   {
      "title" : "Larry Wall interviewed in San Francisco",
      "tags" : [
         "larry-wall",
         "interview",
         "infoq",
         "erlang",
         "elixir",
         "perl-6"
      ],
      "description" : "Larry was interviewed in San Francisco at Erlang & Elixir Factory SF Bay Area 2017 conference",
      "categories" : "community",
      "url" : "https://www.perl.com/article/larry-wall-interviewed-in-san-francisco",
      "epoch" : 1508145965,
      "url_path" : "/article/larry-wall-interviewed-in-san-francisco",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "title" : "What's new on CPAN - September 2017",
      "tags" : [
         "sendmail",
         "slack",
         "noodlepi",
         "windows",
         "data-dumper",
         "emoji",
         "cisco",
         "swagger"
      ],
      "categories" : "cpan",
      "description" : "A curated look at September's new CPAN uploads",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---september-2017",
      "epoch" : 1507251232,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---september-2017"
   },
   {
      "tags" : [
         "json-schema",
         "swagger",
         "openapi",
         "mock"
      ],
      "title" : "Mock APIs for free using JSON Schemas",
      "categories" : "data",
      "description" : "Starring JSON::Schema::ToJSON",
      "url" : "https://www.perl.com/article/mock-apis-for-free-using-json-schemas",
      "epoch" : 1505890641,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/mock-apis-for-free-using-json-schemas"
   },
   {
      "url_path" : "/article/what-s-new-on-cpan---august-2017",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1504834035,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---august-2017",
      "description" : "A curated look at August's new CPAN uploads",
      "categories" : "cpan",
      "title" : "What's new on CPAN - August 2017",
      "tags" : [
         "adb",
         "drip",
         "anticaptcha",
         "tibia",
         "gio",
         "netflow",
         "rop",
         "patro",
         "libusb",
         "tarantool",
         "openapi",
         "xs-check",
         "openapi"
      ]
   },
   {
      "title" : "Plotting With Perl 6",
      "tags" : [
         "inline-python",
         "matplotlib",
         "git"
      ],
      "categories" : "perl-6",
      "description" : "Using Inline::Python and Matplotlib to visualize commit history",
      "url" : "https://www.perl.com/article/plotting-with-perl-6",
      "authors" : [
         "moritz-lenz"
      ],
      "url_path" : "/article/plotting-with-perl-6",
      "epoch" : 1503588477
   },
   {
      "tags" : [
         "git",
         "bisect"
      ],
      "title" : "Git bisect and Perl",
      "description" : "Bisecting Perl commits doesn't always work by itself",
      "categories" : "development",
      "url" : "https://www.perl.com/article/git-bisect-and-perl",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/git-bisect-and-perl",
      "epoch" : 1502224036
   },
   {
      "categories" : "cpan",
      "description" : "A curated look at July's new CPAN uploads",
      "tags" : [
         "lol",
         "geonet",
         "castle-io",
         "tiff",
         "mariadb",
         "neo4j",
         "jsonsql",
         "paws"
      ],
      "title" : "What's new on CPAN - July 2017",
      "epoch" : 1501713869,
      "url_path" : "/article/what-s-new-on-cpan---july-2017",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---july-2017"
   },
   {
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/pretty-printing-perl-6",
      "epoch" : 1501055700,
      "url" : "https://www.perl.com/article/pretty-printing-perl-6",
      "description" : "When .Str is not good enough",
      "categories" : "perl-6",
      "tags" : [
         "prettydump",
         "data-dumper",
         "pretty-printer"
      ],
      "title" : "Pretty Printing Perl 6"
   },
   {
      "description" : "A curated look at June's new CPAN uploads",
      "categories" : "cpan",
      "title" : "What's new on CPAN - June 2017",
      "tags" : [
         "chrome",
         "slack",
         "rapi-app",
         "ppr",
         "coinspot",
         "icinga",
         "guavaring",
         "jwt"
      ],
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---june-2017",
      "epoch" : 1500370041,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---june-2017"
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---annual-edition",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---annual-edition",
      "epoch" : 1499082331,
      "title" : "What's New on CPAN - Annual Edition",
      "tags" : [
         "tpc",
         "yapc",
         "talk"
      ],
      "description" : "Video and slides from my Perl Conference Talk",
      "categories" : "cpan"
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---may-2017",
      "url_path" : "/article/what-s-new-on-cpan---may-2017",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1497346200,
      "title" : "What's new on CPAN - May 2017",
      "tags" : [
         "trello",
         "mpd",
         "vmware",
         "rpi",
         "aws",
         "clouddeploy",
         "sqs",
         "xgboost"
      ],
      "categories" : "cpan",
      "description" : "A curated look at May's new CPAN uploads"
   },
   {
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/on-sigils",
      "epoch" : 1494776724,
      "url" : "https://www.perl.com/article/on-sigils",
      "description" : "Should programming languages use them?",
      "categories" : "development",
      "title" : "On Sigils",
      "tags" : []
   },
   {
      "title" : "What's new on CPAN - April 2017",
      "tags" : [
         "pivotal",
         "mastodon",
         "hashicorp",
         "pixabay",
         "zopfli",
         "io-framed",
         "hyperscan",
         "pcre2",
         "jieba",
         "try-tiny",
         "fastpbkdf2"
      ],
      "description" : "A curated look at April's new CPAN uploads",
      "categories" : "cpan",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---april-2017",
      "url_path" : "/article/what-s-new-on-cpan---april-2017",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1494172648
   },
   {
      "url" : "https://www.perl.com/article/getting-started-with-xs",
      "url_path" : "/article/getting-started-with-xs",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1493844471,
      "title" : "Getting started with XS",
      "tags" : [
         "xs",
         "extutils-makemaker",
         "stdlib.h",
         "rand",
         "perlapi",
         "xsubpp"
      ],
      "description" : "A gentle introduction to Perl's C interface",
      "categories" : "tutorials"
   },
   {
      "description" : "An Interview with Laurent Rosenfeld, author of Think Perl 6",
      "categories" : "perl-6",
      "title" : "Thinking about Perl 6",
      "tags" : [
         "oreilly",
         "interview"
      ],
      "epoch" : 1493108597,
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/an-interview-with-laurent-rosenfeld",
      "url" : "https://www.perl.com/article/an-interview-with-laurent-rosenfeld"
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---march-2017",
      "epoch" : 1492161210,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---march-2017",
      "title" : "What's new on CPAN - March 2017",
      "tags" : [
         "braintree",
         "zendesk",
         "libxml2",
         "putty",
         "glib",
         "lxc",
         "fix",
         "starch",
         "megaport",
         "websocket",
         "web-assetlib",
         "wurm"
      ],
      "categories" : "cpan",
      "description" : "A curated look at March's new CPAN uploads"
   },
   {
      "url" : "https://www.perl.com/article/aws-cloudfront-cache-invalidation-with-paws",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/aws-cloudfront-cache-invalidation-with-paws",
      "epoch" : 1491207134,
      "tags" : [
         "aws",
         "cloudfront",
         "s3",
         "paws"
      ],
      "title" : "AWS Cloudfront cache invalidation with Paws",
      "description" : "Another useful AWS script built with Paws",
      "categories" : "development"
   },
   {
      "title" : "Track Module Changes While You Sleep",
      "tags" : [
         "perlmodules.net",
         "module-extact-use",
         "changes"
      ],
      "description" : "Let Perlmodules.net do the work",
      "categories" : "cpan",
      "url" : "https://www.perl.com/article/let-perlmodules-net-do-the-work",
      "epoch" : 1490604448,
      "url_path" : "/article/let-perlmodules-net-do-the-work",
      "authors" : [
         "brian-d-foy"
      ]
   },
   {
      "tags" : [
         "facebook",
         "taskwarrior",
         "fitbit",
         "foreman",
         "hadoop",
         "pdf",
         "piper",
         "proc-tored",
         "git",
         "raspberrypi",
         "amazon"
      ],
      "title" : "What's new on CPAN - February 2017",
      "description" : "A curated look at February's new CPAN uploads",
      "categories" : "cpan",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---february-2017",
      "epoch" : 1489393788,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---february-2017"
   },
   {
      "url" : "https://www.perl.com/article/deploy-a-static-website-with-aws-s3-and-paws",
      "url_path" : "/article/deploy-a-static-website-with-aws-s3-and-paws",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1487671440,
      "tags" : [
         "aws",
         "paws",
         "s3",
         "static-website"
      ],
      "title" : "Deploy a static website with AWS S3 and Paws",
      "description" : "Paws is a comprehensive Perl distribution for AWS services",
      "categories" : "development"
   },
   {
      "title" : "What's new on CPAN - January 2017",
      "tags" : [
         "chipmunk",
         "telegram",
         "mop",
         "qn",
         "fitbit",
         "pollux",
         "1password"
      ],
      "categories" : "cpan",
      "description" : "A curated look at January's new CPAN uploads",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---january-2017",
      "url_path" : "/article/what-s-new-on-cpan---january-2017",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1486980313
   },
   {
      "url" : "https://www.perl.com/article/6-more-things-about-6",
      "epoch" : 1486455960,
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/6-more-things-about-6",
      "tags" : [
         "rat",
         "return-value",
         "perl-shop",
         "failure",
         "fmt"
      ],
      "title" : "Six more things I like about 6",
      "description" : "Perl 6 features worth spreading",
      "categories" : "perl-6"
   },
   {
      "url" : "https://www.perl.com/article/laptop-review--dell-xps-13-2-in-1--9365-",
      "url_path" : "/article/laptop-review--dell-xps-13-2-in-1--9365-",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1485337433,
      "tags" : [
         "dell",
         "laptop",
         "xps"
      ],
      "title" : "Laptop review: Dell XPS 13 2-in-1 (9365)",
      "description" : "Dell goes one better with this new 2-in-1",
      "categories" : "hardware"
   },
   {
      "epoch" : 1483585486,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---december-2016",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---december-2016",
      "categories" : "cpan",
      "description" : "A curated look at December's new CPAN uploads",
      "tags" : [
         "ansi",
         "azure",
         "blackboard",
         "jira",
         "redis",
         "buddy-system",
         "ulid",
         "json-rpc",
         "mongodb",
         "confluence",
         "diff",
         "catalyst",
         "dancer2",
         "mojolicious",
         "bokehjs"
      ],
      "title" : "What's new on CPAN - December 2016"
   },
   {
      "description" : "One of Perl's ancient artifacts",
      "categories" : "development",
      "title" : "Obscure Perl trick: single-quote separators",
      "tags" : [
         "ada",
         "single-quote",
         "namespace",
         "trick"
      ],
      "epoch" : 1482917760,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/obscure-perl-trick--single-quote-separators",
      "url" : "https://www.perl.com/article/obscure-perl-trick--single-quote-separators"
   },
   {
      "epoch" : 1481704857,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/perl-module-names-are-filepaths---and-that-s-all",
      "url" : "https://www.perl.com/article/perl-module-names-are-filepaths---and-that-s-all",
      "categories" : "development",
      "description" : "Understand how Perl loads code",
      "tags" : [
         "cpan",
         "pause",
         "cuckoo",
         "module",
         "package",
         "perlmod"
      ],
      "title" : "Perl module names are filepaths - and that's all"
   },
   {
      "tags" : [
         "azure",
         "swagger",
         "lobid",
         "lumberjack",
         "acme",
         "cpan-testers",
         "gvg",
         "ajpeg",
         "xlsx",
         "mattermost",
         "stomp",
         "kingpin",
         "mojolicious",
         "catalyst",
         "mce-hobo",
         "kayako"
      ],
      "title" : "What's new on CPAN - November 2016",
      "description" : "A curated look at November's new CPAN uploads",
      "categories" : "cpan",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---november-2016",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---november-2016",
      "epoch" : 1481186726
   },
   {
      "url" : "https://www.perl.com/article/how-to-build-a-base-module",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/how-to-build-a-base-module",
      "epoch" : 1480495678,
      "tags" : [
         "exporter",
         "import-base",
         "mastering-perl"
      ],
      "title" : "How to build a base module",
      "categories" : "development",
      "description" : "Establish consistency and reduce boilerplate across your project"
   },
   {
      "categories" : "community",
      "description" : "Join us for an exciting day of technical talks and fun",
      "tags" : [
         "lpw",
         "london"
      ],
      "title" : "I'm speaking at the London Perl Workshop 2016",
      "epoch" : 1479979674,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/i-m-speaking-at-the-london-perl-workshop-2016",
      "url" : "https://www.perl.com/article/i-m-speaking-at-the-london-perl-workshop-2016"
   },
   {
      "description" : "Share your code with others via CPAN",
      "categories" : "cpan",
      "title" : "How to upload a script to CPAN",
      "tags" : [
         "distribution",
         "metacpan",
         "cpan-testers",
         "toolchain"
      ],
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/how-to-upload-a-script-to-cpan",
      "epoch" : 1479119823,
      "url" : "https://www.perl.com/article/how-to-upload-a-script-to-cpan"
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---october-2016",
      "epoch" : 1478145454,
      "url_path" : "/article/what-s-new-on-cpan---october-2016",
      "authors" : [
         "david-farrell"
      ],
      "title" : "What's new on CPAN - October 2016",
      "tags" : [
         "tibia",
         "pandoc",
         "tnt",
         "bread-board",
         "raspberry-pi",
         "png",
         "netfilter",
         "text-xslate",
         "ajv",
         "bson",
         "test2"
      ],
      "description" : "A curated look at October's new CPAN uploads",
      "categories" : "cpan"
   },
   {
      "url" : "https://www.perl.com/article/how-to-empty-a-file-with-perl",
      "url_path" : "/article/how-to-empty-a-file-with-perl",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1477471020,
      "tags" : [
         "truncate",
         "open",
         "filehandle",
         "vim"
      ],
      "title" : "How to empty a file with Perl",
      "description" : "As easy as you'd expect it to be",
      "categories" : "data"
   },
   {
      "epoch" : 1476261120,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---september-2016",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---september-2016",
      "description" : "A curated look at September's new CPAN uploads",
      "categories" : "cpan",
      "tags" : [
         "drac",
         "oozie",
         "monzo",
         "cassandra",
         "keystone",
         "zstd",
         "dbic",
         "duckduckgo",
         "json-schema"
      ],
      "title" : "What's new on CPAN - September 2016"
   },
   {
      "categories" : "community",
      "description" : "Send those Perl GitHub pull requests!",
      "tags" : [
         "perl",
         "github",
         "pull-request",
         "git",
         "digitalocean",
         "hacktoberfest",
         "ghojo"
      ],
      "title" : "Hacktoberfest is here",
      "epoch" : 1475405461,
      "url_path" : "/article/hacktoberfest-is-here",
      "authors" : [
         "brian-d-foy"
      ],
      "url" : "https://www.perl.com/article/hacktoberfest-is-here"
   },
   {
      "tags" : [
         "twitter",
         "hashtag"
      ],
      "title" : "Don't forget to #Perl",
      "description" : "Help users find Perl related tweets more easily",
      "categories" : "community",
      "url" : "https://www.perl.com/article/don-t-forget-to--perl",
      "epoch" : 1475049937,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/don-t-forget-to--perl"
   },
   {
      "url" : "https://www.perl.com/article/5-things-i-learned-from-learning-perl-7th-edition",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/5-things-i-learned-from-learning-perl-7th-edition",
      "epoch" : 1474618374,
      "title" : "5 things I learned from Learning Perl 7th Edition",
      "tags" : [
         "learning-perl",
         "oreilly",
         "brian-d-foy"
      ],
      "categories" : "community",
      "description" : "A surprisingly in-depth book for beginners"
   },
   {
      "url_path" : "/article/using-bitmasks-with-large-integers",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1473961212,
      "url" : "https://www.perl.com/article/using-bitmasks-with-large-integers",
      "categories" : "data",
      "description" : "Testing huge bit arrays with Perl",
      "tags" : [
         "bigint",
         "bit-array",
         "bitmask",
         "integer",
         "memory"
      ],
      "title" : "Using bit arrays with large integers"
   },
   {
      "description" : "A curated look at August's new CPAN uploads",
      "categories" : "cpan",
      "title" : "What's new on CPAN - August 2016",
      "tags" : [
         "farmhash",
         "medium",
         "xisbn",
         "mailgun",
         "opan",
         "statsite",
         "band-in-a-box",
         "imager",
         "monorail",
         "kinesis",
         "facebook",
         "template-pure"
      ],
      "epoch" : 1473216370,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---august-2016",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---august-2016"
   },
   {
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/the-history-of-the-schwartzian-transform",
      "epoch" : 1472815135,
      "url" : "https://www.perl.com/article/the-history-of-the-schwartzian-transform",
      "description" : "A complex sort with a complex history",
      "categories" : "community",
      "tags" : [
         "perl",
         "lisp",
         "randal-schwartz",
         "schwartzian-transform",
         "alpine-perl-workshop"
      ],
      "title" : "The History of the Schwartzian Transform"
   },
   {
      "url" : "https://www.perl.com/article/save-space-with-bit-arrays",
      "epoch" : 1471942734,
      "url_path" : "/article/save-space-with-bit-arrays",
      "authors" : [
         "david-farrell"
      ],
      "tags" : [
         "bit-array",
         "bitwise",
         "binary",
         "boolean",
         "bigint",
         "integer"
      ],
      "title" : "Save space with bit arrays",
      "description" : "An old school data structure that efficiently stores data",
      "categories" : "data"
   },
   {
      "epoch" : 1471423130,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/identify-slow-code-with-devel--timer",
      "url" : "https://www.perl.com/article/identify-slow-code-with-devel--timer",
      "description" : "How timing statements can help you pinpoint bottlenecks",
      "categories" : "development",
      "title" : "Identify slow code with Devel::Timer",
      "tags" : [
         "devel-timer",
         "benchmark",
         "refactor",
         "optimize",
         "speed"
      ]
   },
   {
      "url_path" : "/article/what-s-new-on-cpan---july-2016",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1470733871,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---july-2016",
      "categories" : "cpan",
      "description" : "A curated look at July's new CPAN uploads",
      "tags" : [
         "socket.io",
         "powershell",
         "mailchimp",
         "readonly",
         "libffi",
         "libpostal",
         "apache",
         "ieee754"
      ],
      "title" : "What's new on CPAN - July 2016"
   },
   {
      "description" : "Learn UTF-8 by encoding it yourself",
      "categories" : "data",
      "title" : "Building a UTF-8 encoder in Perl",
      "tags" : [
         "unicode",
         "utf8",
         "encode",
         "decode",
         "binary",
         "bitmask",
         "codepoint"
      ],
      "url_path" : "/article/building-a-utf-8-encoder-in-perl",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1470127677,
      "url" : "https://www.perl.com/article/building-a-utf-8-encoder-in-perl"
   },
   {
      "url" : "https://www.perl.com/article/announcing-geo--libpostal",
      "url_path" : "/article/announcing-geo--libpostal",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1468917239,
      "title" : "Announcing Geo::libpostal",
      "tags" : [
         "libpostal",
         "geocode",
         "openstreetmap"
      ],
      "categories" : "data",
      "description" : "Perl bindings for libpostal, the address parsing library"
   },
   {
      "tags" : [
         "sqlformat",
         "runkeeper",
         "plack",
         "eav",
         "svg",
         "xml",
         "u2f",
         "pdfunit",
         "ham",
         "wordbrain",
         "findagrave"
      ],
      "title" : "What's new on CPAN - June 2016",
      "categories" : "cpan",
      "description" : "A curated look at June's new CPAN uploads",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---june-2016",
      "epoch" : 1468402478,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---june-2016"
   },
   {
      "url" : "https://www.perl.com/article/write-multiline-programs-at-the-terminal",
      "epoch" : 1467717535,
      "url_path" : "/article/write-multiline-programs-at-the-terminal",
      "authors" : [
         "david-farrell"
      ],
      "title" : "Write multiline programs at the terminal",
      "tags" : [
         "here-doc",
         "perl",
         "terminal",
         "bash",
         "less",
         "man",
         "http-tiny"
      ],
      "categories" : "development",
      "description" : "Using the shell here-doc for throwaway programs"
   },
   {
      "categories" : "development",
      "description" : "How they work and how to implement your own custom versions",
      "tags" : [
         "attributes",
         "symbol_table",
         "typeglob",
         "lvalue"
      ],
      "title" : "Untangling subroutine attributes",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/untangling-subroutine-attributes",
      "epoch" : 1467189440,
      "url" : "https://www.perl.com/article/untangling-subroutine-attributes"
   },
   {
      "description" : "The power of C with the pleasure of Perl",
      "categories" : "development",
      "tags" : [
         "xs",
         "c",
         "uri_encode_xs",
         "uri_escape",
         "percent_encoding",
         "optimization",
         "benchmark"
      ],
      "title" : "The road to a 55x speedup with XS",
      "url_path" : "/article/the-road-to-a-55x-speedup-with-xs",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1465937691,
      "url" : "https://www.perl.com/article/the-road-to-a-55x-speedup-with-xs"
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---May-2016",
      "url_path" : "/article/what-s-new-on-cpan---May-2016",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1465323444,
      "title" : "What's new on CPAN - May 2016",
      "tags" : [
         "msgpuck",
         "gtk3",
         "google",
         "ioctl",
         "uri_escape",
         "tor",
         "dnsmadeeasy",
         "qmail",
         "pem",
         "ffi"
      ],
      "description" : "A curated look at May's new CPAN uploads",
      "categories" : "cpan"
   },
   {
      "url" : "https://www.perl.com/article/promoting-perl-community-articles",
      "url_path" : "/article/promoting-perl-community-articles",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1464252816,
      "tags" : [
         "ruby",
         "perl",
         "perly_bot",
         "reddit",
         "twitter",
         "stackoverflow",
         "perlmonks"
      ],
      "title" : "Promoting Perl community articles",
      "description" : "",
      "categories" : "community"
   },
   {
      "epoch" : 1463126262,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/displaying-the-git-branch-in-the-terminal-prompt-with-perl",
      "url" : "https://www.perl.com/article/displaying-the-git-branch-in-the-terminal-prompt-with-perl",
      "categories" : "development",
      "description" : "Where am I again? No more typing \"git branch\"",
      "tags" : [
         "git",
         "branch",
         "terminal",
         "perl",
         "prompt",
         "bash",
         "sed"
      ],
      "title" : "Displaying the Git branch in the terminal prompt with and without Perl"
   },
   {
      "url" : "https://www.perl.com/article/april_fools",
      "epoch" : 1462394277,
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/april_fools",
      "title" : "Perl Jam VI: April Trolls",
      "tags" : [
         "perl",
         "core",
         "random",
         "modulus",
         "libc",
         "security"
      ],
      "description" : "Perl's ignored security problems, j/k but srsly this time",
      "categories" : "community"
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---April-2016",
      "epoch" : 1462197889,
      "url_path" : "/article/what-s-new-on-cpan---April-2016",
      "authors" : [
         "david-farrell"
      ],
      "title" : "What's new on CPAN - April 2016",
      "tags" : [
         "pinterest",
         "google_maps",
         "backblaze",
         "systemd",
         "leftpad",
         "blowfish",
         "tor",
         "tzfile"
      ],
      "description" : "A curated look at April's new CPAN uploads",
      "categories" : "cpan"
   },
   {
      "epoch" : 1461703361,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/fixing-a-sluggish-linux-after-suspend-resume",
      "url" : "https://www.perl.com/article/fixing-a-sluggish-linux-after-suspend-resume",
      "description" : "The cpupower program can resolve throttled machines",
      "categories" : "linux",
      "tags" : [
         "linux",
         "cpupower",
         "pstate",
         "suspend",
         "sleep",
         "resume",
         "governor"
      ],
      "title" : "Fixing a sluggish Linux after suspend-resume"
   },
   {
      "url" : "https://www.perl.com/article/how-to-parse-binary-data-with-perl",
      "epoch" : 1461009407,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/how-to-parse-binary-data-with-perl",
      "tags" : [
         "binary",
         "unpack",
         "png",
         "tzfile",
         "olsen",
         "zoneinfo"
      ],
      "title" : "How to parse binary data with Perl",
      "categories" : "data",
      "description" : "Parsing binary data is easy with unpack"
   },
   {
      "title" : "What's new on CPAN - March 2016",
      "tags" : [
         "robinhood",
         "log",
         "acme",
         "lets_encrypt",
         "team_city",
         "pub_nub",
         "pushover",
         "json",
         "mce"
      ],
      "description" : "A curated look at March's new CPAN uploads",
      "categories" : "cpan",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---march-2016",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---march-2016",
      "epoch" : 1459933929
   },
   {
      "url" : "https://www.perl.com/article/perl-jam-iv-return-of-the-camel",
      "url_path" : "/article/perl-jam-iv-return-of-the-camel",
      "authors" : [
         "brian-d-foy"
      ],
      "epoch" : 1459499577,
      "title" : "Perl Jam VI: The Return of the Camel",
      "tags" : [
         "perl",
         "core",
         "security"
      ],
      "categories" : "community",
      "description" : "Perl's ignored security problems"
   },
   {
      "tags" : [
         "fedora",
         "yum",
         "dnf",
         "linux",
         "versionlock",
         "ubuntu",
         "debian"
      ],
      "title" : "Prevent harmful Linux updates with versionlock",
      "description" : "How to avoid breaking software updates",
      "categories" : "linux",
      "url" : "https://www.perl.com/article/prevent-harmful-updates-with-versionlock",
      "url_path" : "/article/prevent-harmful-updates-with-versionlock",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1458593177
   },
   {
      "url" : "https://www.perl.com/article/what-is-the-perl-core-",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-is-the-perl-core-",
      "epoch" : 1457517897,
      "title" : "What is the Perl Core?",
      "tags" : [
         "perl",
         "core",
         "standard_library",
         "module",
         "cpan",
         "perldoc",
         "osx",
         "ubuntu",
         "fedora"
      ],
      "description" : "Unfortunately there's more than one way to package it",
      "categories" : "managing-perl"
   },
   {
      "url" : "https://www.perl.com/article/controlling-insanity-by-parsing-ir-codes-with-linux--irpulses",
      "epoch" : 1457426220,
      "url_path" : "/article/controlling-insanity-by-parsing-ir-codes-with-linux--irpulses",
      "authors" : [
         "timm-murray"
      ],
      "tags" : [
         "perl",
         "ir",
         "linux_irpulses",
         "lirc",
         "remote",
         "raspberry_pi"
      ],
      "title" : "Controlling insanity by parsing IR codes with Linux::IRPulses",
      "categories" : "hardware",
      "description" : "Parsing IR remote codes"
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---february-2016",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---february-2016",
      "epoch" : 1457083292,
      "tags" : [
         "walmart",
         "wordpress",
         "huffman",
         "ticketmaster",
         "git",
         "scientist",
         "catalyst"
      ],
      "title" : "What's new on CPAN - February 2016",
      "description" : "A curated look at February's new CPAN uploads",
      "categories" : "cpan"
   },
   {
      "title" : "Netanel Rubin's Perl Jam circus",
      "tags" : [
         "chaos_communication_congress",
         "ccc",
         "black_hat",
         "netanel_rubin",
         "infosec"
      ],
      "description" : "Responding to a misguided attack on Perl",
      "categories" : "security",
      "url" : "https://www.perl.com/article/netanel-rubins-perljam-circus",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/netanel-rubins-perljam-circus",
      "epoch" : 1456822620
   },
   {
      "description" : "How to get started with the open source terminal multiplexer ",
      "categories" : "tooling",
      "title" : "An introduction to Tmux",
      "tags" : [
         "command-line",
         "multiplexer",
         "screen",
         "sysadmin",
         "terminal",
         "terminator",
         "tmux"
      ],
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/an-introduction-to-tmux",
      "epoch" : 1456306158,
      "url" : "https://www.perl.com/article/an-introduction-to-tmux"
   },
   {
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/magical-tied-scalars",
      "epoch" : 1455616200,
      "url" : "https://www.perl.com/article/magical-tied-scalars",
      "categories" : "development",
      "description" : "Subvert and simplify code with tied scalars",
      "title" : "Magical tied scalars",
      "tags" : [
         "tie",
         "scalar",
         "callback",
         "cycle",
         "mastering-perl"
      ]
   },
   {
      "url_path" : "/article/what-s-new-on-cpan---january-2016",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1455116555,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---january-2016",
      "description" : "A curated look at January's new CPAN uploads",
      "categories" : "cpan",
      "tags" : [
         "github",
         "lua",
         "rpm",
         "sdcard"
      ],
      "title" : "What's new on CPAN - January 2016"
   },
   {
      "url_path" : "/article/get-an-in-browser-remote-desktop-with-mojolicious-and-novnc",
      "authors" : [
         "joel-berger"
      ],
      "epoch" : 1454420478,
      "url" : "https://www.perl.com/article/get-an-in-browser-remote-desktop-with-mojolicious-and-novnc",
      "categories" : "web",
      "description" : "Using Mojolicious as a TCP/WebSocket Bridge",
      "tags" : [
         "mojolicious",
         "websockets",
         "novnc"
      ],
      "title" : "Get an in-browser remote desktop with Mojolicious and noVNC"
   },
   {
      "epoch" : 1453384334,
      "url_path" : "/article/twitter-as-a-datastore",
      "authors" : [
         "brian-d-foy"
      ],
      "url" : "https://www.perl.com/article/twitter-as-a-datastore",
      "categories" : "web",
      "description" : "Using social media platforms for computing applications",
      "title" : "Twitter as a datastore",
      "tags" : [
         "math",
         "social_media",
         "net_twitter"
      ]
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---december-2015",
      "url_path" : "/article/what-s-new-on-cpan---december-2015",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1452699065,
      "tags" : [
         "recaptcha",
         "lets_encrypt",
         "frundis",
         "parsito",
         "dbgp",
         "dna",
         "dijkstra"
      ],
      "title" : "What's new on CPAN - December 2015",
      "categories" : "cpan",
      "description" : "A curated look at December's new CPAN uploads"
   },
   {
      "categories" : "testing",
      "description" : "Checking everything compiles should be the first test",
      "tags" : [
         "module",
         "require",
         "class_load"
      ],
      "title" : "Save time with compile tests",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/save-time-with-compile-tests",
      "epoch" : 1452004365,
      "url" : "https://www.perl.com/article/save-time-with-compile-tests"
   },
   {
      "title" : "How to get Perl 6 now",
      "tags" : [
         "linux",
         "windows",
         "rakudo",
         "osx",
         "panda"
      ],
      "description" : "Installation instructions for Linux, OSX and Windows",
      "categories" : "perl-6",
      "url" : "https://www.perl.com/article/how-to-get-perl-6-now",
      "url_path" : "/article/how-to-get-perl-6-now",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1451588939
   },
   {
      "description" : "Making git do you what mean with symbolic references",
      "categories" : "apps",
      "title" : "Quick tip: git push origin hamster?",
      "tags" : [
         "git",
         "symbolic",
         "ref",
         "master",
         "branch"
      ],
      "url_path" : "/article/quick-tip--git-push-origin-hamster-",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1450977605,
      "url" : "https://www.perl.com/article/quick-tip--git-push-origin-hamster-"
   },
   {
      "url" : "https://www.perl.com/article/modern-perl-4th-edition--a-review",
      "url_path" : "/article/modern-perl-4th-edition--a-review",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1450656145,
      "tags" : [
         "cpan",
         "chromatic",
         "pragmatic_bookshelf",
         "book-review"
      ],
      "title" : "Modern Perl 4th edition, a review",
      "categories" : "community",
      "description" : "It gets better and better"
   },
   {
      "description" : "Some JavaScript gotchas and solutions",
      "categories" : "development",
      "title" : "Kitchen coding nightmares: JavaScript scope",
      "tags" : [
         "perl",
         "javascript",
         "js",
         "var",
         "es6",
         "strict",
         "requirejs",
         "jshint"
      ],
      "epoch" : 1450361593,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/kitchen-coding-nightmares--javascript-scope",
      "url" : "https://www.perl.com/article/kitchen-coding-nightmares--javascript-scope"
   },
   {
      "url" : "https://www.perl.com/article/create-github-files-automatically-with-dist--zilla",
      "url_path" : "/article/create-github-files-automatically-with-dist--zilla",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1449668777,
      "title" : "Create GitHub files automatically with Dist::Zilla",
      "tags" : [
         "cpan",
         "module",
         "config",
         "pause",
         "dzil"
      ],
      "description" : "Automate the boring stuff, help others",
      "categories" : "development"
   },
   {
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---november-2015",
      "epoch" : 1449549255,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---november-2015",
      "description" : "A curated look at November's new CPAN uploads",
      "categories" : "cpan",
      "title" : "What's new on CPAN - November 2015",
      "tags" : [
         "phantomjs",
         "dynamodb",
         "zendesk",
         "lz4",
         "handlebars",
         "consul",
         "tvmaze"
      ]
   },
   {
      "url_path" : "/article/making-the-larry-wall-shirt",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1449147121,
      "url" : "https://www.perl.com/article/making-the-larry-wall-shirt",
      "description" : "How to create your own pop art images",
      "categories" : "community",
      "title" : "Making the Larry Wall shirt",
      "tags" : [
         "gimp",
         "inkscape",
         "stencil"
      ]
   },
   {
      "url" : "https://www.perl.com/article/how-to-install-any--perl-module",
      "epoch" : 1448669477,
      "url_path" : "/article/how-to-install-any--perl-module",
      "authors" : [
         "david-farrell"
      ],
      "tags" : [
         "cpan",
         "creative_commons",
         "toolchain"
      ],
      "title" : "How to install any* Perl module",
      "description" : "4 techniques for fixing failing installations",
      "categories" : "tooling"
   },
   {
      "url" : "https://www.perl.com/article/run-only-one-instance-of-a-program-at-a-time",
      "epoch" : 1446642229,
      "url_path" : "/article/run-only-one-instance-of-a-program-at-a-time",
      "authors" : [
         "david-farrell"
      ],
      "tags" : [
         "lockfile",
         "process",
         "race_condition"
      ],
      "title" : "Run only one instance of a program at a time",
      "categories" : "apps",
      "description" : "Lockfiles can provide race condition-free solutions"
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---october-2015",
      "url_path" : "/article/what-s-new-on-cpan---october-2015",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1446564244,
      "tags" : [
         "airbrake",
         "slack",
         "jira",
         "fnv",
         "linkedin"
      ],
      "title" : "What's new on CPAN - October 2015",
      "categories" : "cpan",
      "description" : "A curated look at October's new CPAN uploads"
   },
   {
      "epoch" : 1445431221,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/professional-scripts-are-a-snap-with-getopt--long",
      "url" : "https://www.perl.com/article/professional-scripts-are-a-snap-with-getopt--long",
      "description" : "This core module makes it easy to write programs",
      "categories" : "development",
      "tags" : [
         "app",
         "terminal",
         "type_check"
      ],
      "title" : "Professional scripts are a snap with Getopt::Long"
   },
   {
      "title" : "Understanding Haskell types",
      "tags" : [
         "types",
         "oreilly",
         "cis194",
         "lyas",
         "ghci"
      ],
      "description" : "The basics",
      "categories" : "development",
      "url" : "https://www.perl.com/article/understanding-haskell-types",
      "epoch" : 1444826838,
      "url_path" : "/article/understanding-haskell-types",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "tags" : [
         "terminal",
         "du",
         "filesystem"
      ],
      "title" : "Display real-time data with Curses",
      "description" : "How to create terminal interfaces",
      "categories" : "data",
      "url" : "https://www.perl.com/article/display-real-time-data-with-curses",
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/display-real-time-data-with-curses",
      "epoch" : 1444137528
   },
   {
      "description" : "A curated look at September's new CPAN uploads",
      "categories" : "cpan",
      "title" : "What's new on CPAN - September 2015",
      "tags" : [
         "json",
         "libpuzzle",
         "http_headers",
         "rgb",
         "oauth",
         "diachronic",
         "neovim"
      ],
      "epoch" : 1443707372,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---september-2015",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---september-2015"
   },
   {
      "description" : "Four tricks to get the highlighting you want",
      "categories" : "tooling",
      "tags" : [
         "config",
         "perl-6",
         "productivity",
         "vim",
         "vimscript"
      ],
      "title" : "Activating Perl 6 syntax highlighting in Vim",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/activating-perl-6-syntax-highlighting-in-vim",
      "epoch" : 1442960208,
      "url" : "https://www.perl.com/article/activating-perl-6-syntax-highlighting-in-vim"
   },
   {
      "title" : "How to send verification emails using Mojolicious",
      "tags" : [
         "mojo",
         "email",
         "verification",
         "automated"
      ],
      "description" : "Control access to your Mojo app with registration emails",
      "categories" : "web",
      "url" : "https://www.perl.com/article/how-to-send-verification-emails-using-mojolicious",
      "epoch" : 1442576806,
      "authors" : [
         "joel-berger"
      ],
      "url_path" : "/article/how-to-send-verification-emails-using-mojolicious"
   },
   {
      "categories" : "cpan",
      "description" : "A curated look at August's new CPAN uploads",
      "tags" : [
         "hadoop",
         "webmaster_tools",
         "cloudfront",
         "swagger",
         "hilbert",
         "php"
      ],
      "title" : "What's new on CPAN - August 2015",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---august-2015",
      "epoch" : 1441286355,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---august-2015"
   },
   {
      "tags" : [
         "seo",
         "goodie",
         "duckduckhack"
      ],
      "title" : "How to choose a DuckDuckGo cheatsheet topic",
      "description" : "Some sources of inspiration",
      "categories" : "community",
      "url" : "https://www.perl.com/article/how-to-choose-a-duckduckgo-cheatsheet-topic",
      "epoch" : 1440841589,
      "url_path" : "/article/how-to-choose-a-duckduckgo-cheatsheet-topic",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "url" : "https://www.perl.com/article/check-your-duckduckgo-cheatsheets-with-perl",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/check-your-duckduckgo-cheatsheets-with-perl",
      "epoch" : 1440727848,
      "title" : "Check your DuckDuckGo cheatsheets with Perl",
      "tags" : [
         "syntax",
         "json",
         "cheatsheet"
      ],
      "description" : "Zero-in on any defects with this Perl script",
      "categories" : "testing"
   },
   {
      "epoch" : 1440680951,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/simple--secure-backups-with-perl",
      "url" : "https://www.perl.com/article/simple--secure-backups-with-perl",
      "categories" : "apps",
      "description" : "Creating encrypted, compressed archives",
      "title" : "Simple, secure backups with Perl",
      "tags" : [
         "stasis",
         "gpg",
         "tar",
         "dropbox",
         "aes",
         "encryption",
         "security",
         "privacy"
      ]
   },
   {
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/writing-duckduckgo-plugins-just-got-easier",
      "epoch" : 1440252325,
      "url" : "https://www.perl.com/article/writing-duckduckgo-plugins-just-got-easier",
      "description" : "All you need is JSON",
      "categories" : "community",
      "title" : "Writing DuckDuckGo plugins just got easier",
      "tags" : [
         "community",
         "search",
         "json"
      ]
   },
   {
      "categories" : "hardware",
      "description" : "An excellent machine",
      "title" : "Laptop review: Dell XPS 13 2015",
      "tags" : [
         "dell",
         "laptop",
         "xps"
      ],
      "url_path" : "/article/laptop-review--dell-xps-13-2015",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1439901252,
      "url" : "https://www.perl.com/article/laptop-review--dell-xps-13-2015"
   },
   {
      "url" : "https://www.perl.com/article/port-scanning-with-perl--part-ii",
      "epoch" : 1439651131,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/port-scanning-with-perl--part-ii",
      "title" : "Port scanning with Perl, Part II",
      "tags" : [
         "tcp",
         "icmp",
         "udp",
         "nmap"
      ],
      "categories" : "security",
      "description" : "Towards building a professional tool"
   },
   {
      "epoch" : 1438692933,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---july-2015",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---july-2015",
      "categories" : "cpan",
      "description" : "A curated look at July's new CPAN uploads",
      "title" : "What's new on CPAN - July 2015",
      "tags" : [
         "mojo",
         "pingen",
         "topological",
         "pdl",
         "influxdb",
         "crate",
         "ssh",
         "dios"
      ]
   },
   {
      "url" : "https://www.perl.com/article/rip-music-from-anywhere-with-audacity",
      "epoch" : 1438260586,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/rip-music-from-anywhere-with-audacity",
      "title" : "Rip music from anywhere with Audacity",
      "tags" : [
         "youtube",
         "bandcamp",
         "audacity",
         "soundcloud",
         "pandora",
         "portaudio",
         "mp3"
      ],
      "description" : "Open source software makes it easy",
      "categories" : "apps"
   },
   {
      "title" : "Port scanning with Perl",
      "tags" : [
         "tcp",
         "infosec",
         "udp",
         "libpcap"
      ],
      "categories" : "security",
      "description" : "Building a concurrent, randomized, capable port scanner",
      "url" : "https://www.perl.com/article/port-scanning-with-perl",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/port-scanning-with-perl",
      "epoch" : 1437398097
   },
   {
      "url" : "https://www.perl.com/article/stupid-open---tricks",
      "url_path" : "/article/stupid-open---tricks",
      "authors" : [
         "brian-d-foy"
      ],
      "epoch" : 1436962744,
      "tags" : [
         "filehandle",
         "ipc",
         "perlio"
      ],
      "title" : "Stupid open() tricks",
      "categories" : "development",
      "description" : "Everyone tells you to use a three-argument open(), but there's a lot more you can do ..."
   },
   {
      "tags" : [
         "catalyst",
         "dancer",
         "mojo",
         "selenium",
         "solr",
         "slack",
         "dx",
         "hipchat",
         "ditaa",
         "bonusly",
         "zendesk"
      ],
      "title" : "What's new on CPAN - June 2015",
      "description" : "Our monthly curated guide to CPAN's newest modules",
      "categories" : "cpan",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---june-2015",
      "epoch" : 1436447830,
      "url_path" : "/article/what-s-new-on-cpan---june-2015",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "url" : "https://www.perl.com/article/host-discovery-with-broadcast-and-echo",
      "url_path" : "/article/host-discovery-with-broadcast-and-echo",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1436185630,
      "title" : "Host discovery with broadcast and echo",
      "tags" : [
         "tcp",
         "infosec",
         "icmp",
         "socket",
         "ping",
         "udp"
      ],
      "description" : "Implemented with core Perl only",
      "categories" : "security"
   },
   {
      "tags" : [
         "infosec",
         "livehost",
         "port",
         "scan",
         "hack"
      ],
      "title" : "Basic network hacking with Perl",
      "categories" : "security",
      "description" : "A few scripts to get going",
      "url" : "https://www.perl.com/article/basic-network-hacking-with-perl",
      "epoch" : 1435755091,
      "url_path" : "/article/basic-network-hacking-with-perl",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "title" : "Separate data and behavior with table-driven testing",
      "tags" : [
         "data",
         "unit_testing",
         "sprintf"
      ],
      "categories" : "testing",
      "description" : "Optimize code re-use and test coverage",
      "url" : "https://www.perl.com/article/separate-data-and-behavior-with-table-driven-testing",
      "epoch" : 1434546544,
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/separate-data-and-behavior-with-table-driven-testing"
   },
   {
      "description" : "The ubiquitous test runner is a powerful tool for your arsenal",
      "categories" : "testing",
      "tags" : [
         "perl-6",
         "test",
         "prove",
         "cheet_sheet",
         "test-anything-protocol"
      ],
      "title" : "Get to grips with Prove, Perl's test workhorse",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/get-to-grips-with-prove--perl-s-test-workhorse",
      "epoch" : 1433854742,
      "url" : "https://www.perl.com/article/get-to-grips-with-prove--perl-s-test-workhorse"
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---may-2015",
      "url_path" : "/article/what-s-new-on-cpan---may-2015",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1433432156,
      "tags" : [
         "git",
         "gps",
         "marvel",
         "elasticsearch",
         "spamassassin",
         "hadoop",
         "directconnect",
         "google_analytics",
         "pocket",
         "airbrake"
      ],
      "title" : "What's new on CPAN - May 2015",
      "categories" : "cpan",
      "description" : "Our curated guide to last month's new CPAN uploads"
   },
   {
      "url" : "https://www.perl.com/article/defend-your-code-with-guard",
      "epoch" : 1432040100,
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/defend-your-code-with-guard",
      "title" : "Defend your code with Guard",
      "tags" : [
         "guard",
         "safety"
      ],
      "categories" : "development",
      "description" : "Guard helps you protect against unexpected changes to values"
   },
   {
      "title" : "Miniconf NYC - a free Perl conference",
      "tags" : [
         "open_source",
         "nyc",
         "miniconf"
      ],
      "description" : "Training, hackathon, lightning talks and swag",
      "categories" : "community",
      "url" : "https://www.perl.com/article/miniconf-nyc---a-free-perl-conference",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/miniconf-nyc---a-free-perl-conference",
      "epoch" : 1431606397
   },
   {
      "url" : "https://www.perl.com/article/script-fu--how-to-raise-641-request-tracker-tickets",
      "url_path" : "/article/script-fu--how-to-raise-641-request-tracker-tickets",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1431435266,
      "tags" : [
         "rakudo",
         "perl_6",
         "nyc",
         "hackathon",
         "rt"
      ],
      "title" : "Script-fu: how to raise 641 request tracker tickets",
      "categories" : "community",
      "description" : "NYC Perl hackathon fun"
   },
   {
      "title" : "What's new on CPAN - April 2015",
      "tags" : [
         "json",
         "jasmine",
         "jboss",
         "bsd",
         "bus_pirate",
         "electron",
         "couchdb",
         "dynamodb",
         "minecraft"
      ],
      "categories" : "cpan",
      "description" : "Our curated guide to last month's new CPAN uploads",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---april-2015",
      "epoch" : 1430999245,
      "url_path" : "/article/what-s-new-on-cpan---april-2015",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "title" : "Cache::Reddit or: how to use social media as a temporary data store",
      "tags" : [
         "cache",
         "reddit",
         "storable",
         "humor"
      ],
      "categories" : "web",
      "description" : "Introducing a suboptimal solution",
      "url" : "https://www.perl.com/article/cache--reddit-or--how-to-use-social-media-as-a-temporary-data-store",
      "url_path" : "/article/cache--reddit-or--how-to-use-social-media-as-a-temporary-data-store",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1430742511
   },
   {
      "tags" : [
         "pod",
         "perl-6",
         "grammar",
         "pegex",
         "parser"
      ],
      "title" : "Parsing Perl 5 pod with Perl 6",
      "categories" : "perl-6",
      "description" : "Grammars, action classes, code!",
      "url" : "https://www.perl.com/article/parsing-perl-5-pod-with-perl-6",
      "epoch" : 1430399663,
      "url_path" : "/article/parsing-perl-5-pod-with-perl-6",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "epoch" : 1429533197,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/writing-duckduckgo-instant-answers-is-easy",
      "url" : "https://www.perl.com/article/writing-duckduckgo-instant-answers-is-easy",
      "categories" : "community",
      "description" : "The privacy-focused search engine has a helpful community and great tools",
      "tags" : [
         "duckduckgo",
         "perldoc",
         "cheatsheet",
         "app_duckpan"
      ],
      "title" : "Writing DuckDuckGo instant answers is easy"
   },
   {
      "title" : "Unit test your code on an in-memory database",
      "tags" : [
         "database",
         "dbix_class",
         "orm",
         "testing",
         "sqlite"
      ],
      "categories" : "testing",
      "description" : "Unit tests should be self-contained, even database ones",
      "url" : "https://www.perl.com/article/unit-test-your-code-on-an-in-memory-database",
      "epoch" : 1429067100,
      "url_path" : "/article/unit-test-your-code-on-an-in-memory-database",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "url_path" : "/article/a-preview-of-perl-5-22",
      "authors" : [
         "brian-d-foy"
      ],
      "epoch" : 1428676154,
      "url" : "https://www.perl.com/article/a-preview-of-perl-5-22",
      "categories" : "tooling",
      "description" : "New features, deprecations become fatal, and cleaner syntax",
      "tags" : [
         "5.22",
         "features"
      ],
      "title" : "A preview of Perl 5.22"
   },
   {
      "description" : "Our monthly curated guide to the best new CPAN uploads",
      "categories" : "cpan",
      "tags" : [
         "gs1",
         "postgres",
         "mailmap",
         "ini",
         "ical",
         "ltsv",
         "presto",
         "email",
         "extjs"
      ],
      "title" : "What's New on CPAN - March 2015",
      "url_path" : "/article/what-s-new-on-cpan---march-2015",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1428385732,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---march-2015"
   },
   {
      "title" : "3 Awesome Perl Events in NYC this Spring/Summer",
      "tags" : [
         "community",
         "duckduckgo",
         "nyc",
         "mojoconf",
         "quacknhack",
         "alleynyc",
         "ny_pm",
         "bloomberg"
      ],
      "categories" : "community",
      "description" : "Quack & Hack, the NY.PM Hackathon and Mojoconf",
      "url" : "https://www.perl.com/article/3-awesome-perl-events-in-nyc-this-spring-summer",
      "url_path" : "/article/3-awesome-perl-events-in-nyc-this-spring-summer",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1427808356
   },
   {
      "url" : "https://www.perl.com/article/gzipping-data-directly-from-perl",
      "epoch" : 1427460508,
      "url_path" : "/article/gzipping-data-directly-from-perl",
      "authors" : [
         "brian-d-foy"
      ],
      "title" : "Gzipping data directly from Perl",
      "tags" : [
         "perl",
         "gzip",
         "compression"
      ],
      "categories" : "data",
      "description" : "TIMTOWDI"
   },
   {
      "categories" : "data",
      "description" : "Algorithm::Kelly makes it easy",
      "tags" : [
         "kelly_criterion",
         "algorithm",
         "betting"
      ],
      "title" : "Calculate Fortune's Formula with Perl",
      "epoch" : 1427114528,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/calculate-fortune-s-formula-with-perl",
      "url" : "https://www.perl.com/article/calculate-fortune-s-formula-with-perl"
   },
   {
      "epoch" : 1426500269,
      "authors" : [
         "timm-murray"
      ],
      "url_path" : "/article/accelerating-perl",
      "url" : "https://www.perl.com/article/accelerating-perl",
      "categories" : "hardware",
      "description" : "Things move quickly with Perl. Use accelerometers to find out just how quickly.",
      "title" : "Accelerating Perl",
      "tags" : [
         "raspberry",
         "pi",
         "hardware",
         "accelerometer"
      ]
   },
   {
      "categories" : "testing",
      "description" : "Something not working? Whip up a one liner and find out why",
      "title" : "Quickly Debug your Perl code at the command line",
      "tags" : [
         "one_liner",
         "terminal",
         "debug",
         "testing"
      ],
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/quickly-debug-your-perl-code-at-the-command-line",
      "epoch" : 1426253646,
      "url" : "https://www.perl.com/article/quickly-debug-your-perl-code-at-the-command-line"
   },
   {
      "url" : "https://www.perl.com/article/gps-and-perl",
      "epoch" : 1425991410,
      "authors" : [
         "timm-murray"
      ],
      "url_path" : "/article/gps-and-perl",
      "title" : "GPS and Perl",
      "tags" : [
         "raspberry_pi",
         "hardware",
         "gps",
         "nmea",
         "rs232"
      ],
      "categories" : "hardware",
      "description" : "How to find your way with Perl"
   },
   {
      "url" : "https://www.perl.com/article/how-to-test-for-exceptions-in-perl",
      "epoch" : 1425562037,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/how-to-test-for-exceptions-in-perl",
      "tags" : [
         "test_more",
         "test",
         "unit_test",
         "test_exception",
         "tap"
      ],
      "title" : "How to test for exceptions in Perl",
      "description" : "Does your code blow up the way you expect it to?",
      "categories" : "testing"
   },
   {
      "categories" : "cpan",
      "description" : "Our curated guide to last month's CPAN uploads",
      "title" : "What's new on CPAN - February 2015",
      "tags" : [
         "yaml",
         "git",
         "aws",
         "selenium",
         "lithium",
         "bitvector",
         "json",
         "surveymonkey",
         "haskell",
         "toml"
      ],
      "epoch" : 1425304330,
      "url_path" : "/article/what-s-new-on-cpan---february-2015",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---february-2015"
   },
   {
      "url" : "https://www.perl.com/article/hello-perldoc--productivity-booster",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/hello-perldoc--productivity-booster",
      "epoch" : 1424958177,
      "title" : "Hello perldoc, productivity booster",
      "tags" : [
         "cpan",
         "documentation",
         "pod",
         "terminal",
         "command_line",
         "perldoc",
         "productivity"
      ],
      "description" : "Get to know perldoc to find Perl answers faster",
      "categories" : "apps"
   },
   {
      "url" : "https://www.perl.com/article/build-a-twitter-bot-with-perl",
      "epoch" : 1424700726,
      "url_path" : "/article/build-a-twitter-bot-with-perl",
      "authors" : [
         "david-farrell"
      ],
      "title" : "Build a Twitter bot with Perl",
      "tags" : [
         "perl",
         "reddit",
         "bot",
         "twitter",
         "automation",
         "tweet"
      ],
      "categories" : "web",
      "description" : "Automating tweets can win you more followers!"
   },
   {
      "categories" : "community",
      "description" : "Learn more about Geekuni, the online learning environment",
      "tags" : [
         "geekuni",
         "moodle",
         "online_learning"
      ],
      "title" : "Why I Started Geekuni",
      "authors" : [
         "Andrew Solomon"
      ],
      "url_path" : "/article/why-i-started-geekuni",
      "epoch" : 1424267193,
      "url" : "https://www.perl.com/article/why-i-started-geekuni"
   },
   {
      "url" : "https://www.perl.com/article/get-to-grips-with-gnu-screen",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/get-to-grips-with-gnu-screen",
      "epoch" : 1424096150,
      "tags" : [
         "command_line",
         "multiplexer",
         "screen",
         "sysadmin",
         "terminal",
         "terminator",
         "tmux"
      ],
      "title" : "Get to grips with GNU Screen",
      "categories" : "tooling",
      "description" : "Once you start using a multiplexer, you'll never go back"
   },
   {
      "authors" : [
         "timm-murray"
      ],
      "url_path" : "/article/a-perl-review-of-the-odroid-c1",
      "epoch" : 1423662813,
      "url" : "https://www.perl.com/article/a-perl-review-of-the-odroid-c1",
      "description" : "This little board shows a lot of promise for Perl-based hardware projects",
      "categories" : "hardware",
      "title" : "A Perl Review of the ODROID-C1",
      "tags" : [
         "dancer",
         "hardware",
         "odroid",
         "raspberrypi",
         "device_webio"
      ]
   },
   {
      "title" : "Build a Reddit bot with Perl",
      "tags" : [
         "xml",
         "perl",
         "reddit",
         "rss",
         "feed",
         "atom",
         "bot"
      ],
      "description" : "It's easy and fast to do",
      "categories" : "web",
      "url" : "https://www.perl.com/article/build-a-reddit-bot-with-perl",
      "epoch" : 1423489264,
      "url_path" : "/article/build-a-reddit-bot-with-perl",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "description" : "Our curated guide to last month's CPAN uploads",
      "categories" : "cpan",
      "tags" : [
         "catalyst",
         "dist_zilla",
         "platypus",
         "libffi",
         "google_tasks",
         "data_fake",
         "devops",
         "diff"
      ],
      "title" : "What's new on CPAN - January 2015",
      "url_path" : "/article/what-s-new-on-cpan---january-2015",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1423229680,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---january-2015"
   },
   {
      "description" : "A useful alternative to DateTime",
      "categories" : "data",
      "title" : "Time::Moment can save time",
      "tags" : [
         "time",
         "datetime",
         "8601",
         "moment"
      ],
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/time--moment-can-save-time",
      "epoch" : 1422885880,
      "url" : "https://www.perl.com/article/time--moment-can-save-time"
   },
   {
      "description" : "Can you help?",
      "categories" : "community",
      "tags" : [
         "community",
         "qa_hackathon",
         "berlin",
         "2015"
      ],
      "title" : "Support the 2015 QA Hackathon",
      "epoch" : 1422455021,
      "url_path" : "/article/support-the-2015-qa-hackathon",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/support-the-2015-qa-hackathon"
   },
   {
      "title" : "Introducing 3 new Perl Glyphs",
      "tags" : [
         "icomoon",
         "fontforge",
         "svg",
         "glyph",
         "bootstrap",
         "icon",
         "font"
      ],
      "categories" : "community",
      "description" : "What will you use them for?",
      "url" : "https://www.perl.com/article/introducing-3-new-perl-glyphs",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/introducing-3-new-perl-glyphs",
      "epoch" : 1422021303
   },
   {
      "url" : "https://www.perl.com/article/the-best-of-what-s-new-on-cpan-2014",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/the-best-of-what-s-new-on-cpan-2014",
      "epoch" : 1421333080,
      "tags" : [
         "ffi",
         "mojo",
         "best_of",
         "2014",
         "drone",
         "hash_ordered",
         "slurp",
         "sereal",
         "reveal",
         "js",
         "phantomjs",
         "pic"
      ],
      "title" : "The best of what's new on CPAN 2014",
      "description" : "Some modules you may have missed last year",
      "categories" : "cpan"
   },
   {
      "epoch" : 1421163936,
      "url_path" : "/article/how-to-create-a-grammar-in-perl-6",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/how-to-create-a-grammar-in-perl-6",
      "categories" : "perl-6",
      "description" : "They're powerful and easy to whip up",
      "tags" : [
         "perl_6",
         "grammar",
         "pegex"
      ],
      "title" : "How to create a grammar in Perl 6"
   },
   {
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/extracting-from-html-with-mojo--dom",
      "epoch" : 1420725702,
      "url" : "https://www.perl.com/article/extracting-from-html-with-mojo--dom",
      "categories" : "data",
      "description" : "No HTML or regexes necessary",
      "title" : "Extracting from HTML with Mojo::DOM",
      "tags" : [
         "html",
         "mojolicious",
         "parse",
         "dom"
      ]
   },
   {
      "epoch" : 1420465844,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---december-2014",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---december-2014",
      "categories" : "cpan",
      "description" : "A curated look at the latest CPAN uploads",
      "tags" : [
         "dancer",
         "tcp",
         "tesco",
         "vultr",
         "instapaper",
         "geo_code",
         "bitcoin"
      ],
      "title" : "What's new on CPAN - December 2014"
   },
   {
      "url" : "https://www.perl.com/article/the-whitespace-in-the-perl-community",
      "epoch" : 1418652045,
      "url_path" : "/article/the-whitespace-in-the-perl-community",
      "authors" : [
         "brian-d-foy"
      ],
      "title" : "The Whitespace in the Perl community",
      "tags" : [
         "community",
         "opportunity"
      ],
      "description" : "Find your niche",
      "categories" : "community"
   },
   {
      "tags" : [
         "raspberry_pi",
         "hackerspace",
         "hardware",
         "camera"
      ],
      "title" : "A Hackerspace Webcam",
      "description" : "Using Raspberry Pi and Perl to operate a live camera",
      "categories" : "hardware",
      "url" : "https://www.perl.com/article/a-hackerspace-webcam",
      "authors" : [
         "timm-murray"
      ],
      "url_path" : "/article/a-hackerspace-webcam",
      "epoch" : 1418651901
   },
   {
      "description" : "With Perl it is always easier than you think",
      "categories" : "web",
      "tags" : [
         "windows",
         "perl",
         "ole",
         "screenshot",
         "internet_explorer",
         "win32"
      ],
      "title" : "Automated Internet Explorer screenshots using Win32::OLE",
      "epoch" : 1418309065,
      "url_path" : "/article/automated-internet-explorer-screenshots-using-win32--ole",
      "authors" : [
         "sinan-unur"
      ],
      "url" : "https://www.perl.com/article/automated-internet-explorer-screenshots-using-win32--ole"
   },
   {
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/controlling-firefox-from-perl",
      "epoch" : 1418048007,
      "url" : "https://www.perl.com/article/controlling-firefox-from-perl",
      "categories" : "web",
      "description" : "Form submission, scraping, JavaScript execution are all possible",
      "title" : "Controlling Firefox from Perl",
      "tags" : [
         "javascript",
         "firefox",
         "mechanize"
      ]
   },
   {
      "description" : "A curated look at the latest CPAN uploads",
      "categories" : "cpan",
      "tags" : [
         "git",
         "aws",
         "selenium",
         "trifid",
         "chess",
         "jump_hash",
         "todoist",
         "gnucash",
         "bitbucket"
      ],
      "title" : "What's new on CPAN - November 2014",
      "url_path" : "/article/what-s-new-on-cpan---november-2014",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1417529716,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---november-2014"
   },
   {
      "tags" : [
         "windows",
         "one_liner",
         "perl",
         "terminal",
         "command_line",
         "perl-6",
         "rakudo"
      ],
      "title" : "Get started with Perl 6 one liners",
      "description" : "One liners in Perl are better than ever",
      "categories" : "perl-6",
      "url" : "https://www.perl.com/article/get-started-with-perl-6-one-liners",
      "url_path" : "/article/get-started-with-perl-6-one-liners",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1416492296
   },
   {
      "url" : "https://www.perl.com/article/building-perl-6-with-visual-studio-2013",
      "epoch" : 1416317676,
      "url_path" : "/article/building-perl-6-with-visual-studio-2013",
      "authors" : [
         "sinan-unur"
      ],
      "tags" : [
         "windows",
         "perl-6",
         "rakudo",
         "star",
         "visual_studio_2013",
         "visual_studio_2015"
      ],
      "title" : "Building Perl 6 with Visual Studio 2013",
      "categories" : "perl-6",
      "description" : "Compiling Rakudo on Windows is easier than you think"
   },
   {
      "categories" : "apps",
      "description" : "Get the most out of your markdown-driven presentations",
      "tags" : [
         "revealjs",
         "app_revealup",
         "speaker_notes",
         "markdown"
      ],
      "title" : "Advanced slideshow maneuvers",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/advanced-slideshow-maneuvers",
      "epoch" : 1415885910,
      "url" : "https://www.perl.com/article/advanced-slideshow-maneuvers"
   },
   {
      "description" : "An easy trick that saves you time",
      "categories" : "testing",
      "tags" : [
         "perl",
         "compile",
         "check",
         "vim",
         "sublime_text",
         "text_editor",
         "watch",
         "syntastic"
      ],
      "title" : "Boost your Perl productivity with auto-compile checking",
      "epoch" : 1415628111,
      "url_path" : "/article/boost-your-perl-productivity-with-auto-compile-checking",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/boost-your-perl-productivity-with-auto-compile-checking"
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---october-2014",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---october-2014",
      "epoch" : 1415366537,
      "tags" : [
         "dancer",
         "urandom",
         "ffi",
         "tinycc",
         "hacker_news",
         "lock_socket",
         "file_slurp",
         "cloud_convert",
         "fuzzy_match",
         "mojo",
         "sitemap"
      ],
      "title" : "What's new on CPAN - October 2014",
      "categories" : "cpan",
      "description" : "A curated look at the latest CPAN uploads"
   },
   {
      "epoch" : 1414769478,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/implementing-did-you-mean-in-perl",
      "url" : "https://www.perl.com/article/implementing-did-you-mean-in-perl",
      "description" : "Catching and handling undefined subroutine exceptions",
      "categories" : "development",
      "tags" : [
         "autoload",
         "mastering-perl",
         "symbol_table",
         "ruby",
         "did_you_mean"
      ],
      "title" : "Implementing Did You Mean in Perl"
   },
   {
      "description" : "Write elegant, simple code with split",
      "categories" : "development",
      "tags" : [
         "array",
         "split",
         "builtin",
         "function",
         "whitespace",
         "trim",
         "char",
         "join"
      ],
      "title" : "Perl's versatile split function",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/perl-s-versatile-split-function",
      "epoch" : 1414154572,
      "url" : "https://www.perl.com/article/perl-s-versatile-split-function"
   },
   {
      "description" : "Don't waste time writing test classes, test the role directly",
      "categories" : "development",
      "tags" : [
         "object",
         "test_more",
         "role_tiny",
         "unit",
         "mock",
         "fake",
         "role_basic",
         "bless",
         "sub"
      ],
      "title" : "How to test Perl roles without creating test classes",
      "epoch" : 1413465363,
      "url_path" : "/article/how-to-test-perl-roles-without-creating-test-classes",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/how-to-test-perl-roles-without-creating-test-classes"
   },
   {
      "url" : "https://www.perl.com/article/hello-berrybrew--the-strawberry-perl-version-manager",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/hello-berrybrew--the-strawberry-perl-version-manager",
      "epoch" : 1412944792,
      "title" : "Hello berrybrew, the Strawberry Perl version manager",
      "tags" : [
         "windows",
         "perlbrew",
         "config",
         "berrybrew",
         "strawberry_perl"
      ],
      "categories" : "apps",
      "description" : "A fruitier perlbrew for Windows"
   },
   {
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/neutralize-shellshock-by-patching-bash-with-perl",
      "epoch" : 1412532825,
      "url" : "https://www.perl.com/article/neutralize-shellshock-by-patching-bash-with-perl",
      "categories" : "security",
      "description" : "Unsupported Linux version? Upgrade Bash now",
      "title" : "Neutralize Shellshock by patching Bash with Perl",
      "tags" : [
         "bash",
         "perl",
         "shellshock",
         "fix",
         "bashfix"
      ]
   },
   {
      "epoch" : 1412337995,
      "url_path" : "/article/what-s-new-on-cpan---september-2014",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---september-2014",
      "categories" : "cpan",
      "description" : "Our curated guide to September's new CPAN uploads",
      "title" : "What's new on CPAN - September 2014",
      "tags" : [
         "weather",
         "hmac",
         "pirate_bus",
         "text",
         "analytics",
         "dns",
         "beer",
         "rex"
      ]
   },
   {
      "categories" : "security",
      "description" : "Understanding the Shellshock bug what it means for Perl",
      "tags" : [
         "perl",
         "shellshock",
         "exploit",
         "bug",
         "vulnerability",
         "env",
         "system",
         "exec"
      ],
      "title" : "Shellshock and Perl",
      "epoch" : 1411738134,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/shellshock-and-perl",
      "url" : "https://www.perl.com/article/shellshock-and-perl"
   },
   {
      "epoch" : 1411042974,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/easily-check-your-ip-address-with-perl",
      "url" : "https://www.perl.com/article/easily-check-your-ip-address-with-perl",
      "description" : "The WWW::curlmyip module is an API for curlmyip.com",
      "categories" : "web",
      "tags" : [
         "ip",
         "address",
         "ipinfo",
         "curlmyip",
         "geo_ip",
         "geolocate",
         "maxmind"
      ],
      "title" : "Easily check your IP address with Perl"
   },
   {
      "description" : "WWW::Wunderground::API makes it easy to pull weather data for your area",
      "categories" : "development",
      "title" : "Get a weather report at the terminal with Perl",
      "tags" : [
         "api",
         "weather",
         "wundergound",
         "script",
         "terminal",
         "command_line"
      ],
      "url_path" : "/article/get-a-weather-report-at-the-terminal-with-perl",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1410438993,
      "url" : "https://www.perl.com/article/get-a-weather-report-at-the-terminal-with-perl"
   },
   {
      "url" : "https://www.perl.com/article/analyzing-github-with-the-search-api",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/analyzing-github-with-the-search-api",
      "epoch" : 1409919111,
      "title" : "Analyzing GitHub with the search API",
      "tags" : [
         "github",
         "git",
         "docker",
         "search",
         "api",
         "net_github"
      ],
      "description" : "Net::GitHub makes it easy to search GitHub",
      "categories" : "data"
   },
   {
      "epoch" : 1409661364,
      "url_path" : "/article/what-s-new-on-cpan-august-2014",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/what-s-new-on-cpan-august-2014",
      "description" : "A curated look at August's new CPAN uploads",
      "categories" : "cpan",
      "tags" : [
         "dist_zilla",
         "pcduino",
         "appium",
         "bandcamp",
         "stripe",
         "future",
         "bloom_filter",
         "iod",
         "arduino",
         "raspberry_pi",
         "unicode"
      ],
      "title" : "What's new on CPAN August 2014"
   },
   {
      "description" : "A few Perl modules make it easy",
      "categories" : "data",
      "tags" : [
         "sysadmin",
         "cd",
         "file_find",
         "music",
         "apple",
         "itunes",
         "metadata",
         "file_copy",
         "digest_md5"
      ],
      "title" : "Facing the music with Perl",
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/facing-the-music-with-perl",
      "epoch" : 1409324589,
      "url" : "https://www.perl.com/article/facing-the-music-with-perl"
   },
   {
      "url_path" : "/article/who-has-the-best-package-manager--part-one",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1408626183,
      "url" : "https://www.perl.com/article/who-has-the-best-package-manager--part-one",
      "categories" : "cpan",
      "description" : "Who has the best package manager and what we can we learn from all of them",
      "tags" : [
         "cpan",
         "metacpan",
         "npm",
         "pypi",
         "rubygems",
         "package_manager"
      ],
      "title" : "Who has the best package manager? Part one"
   },
   {
      "tags" : [
         "cpan",
         "module",
         "github",
         "distribution",
         "cpanday",
         "pause",
         "celebration"
      ],
      "title" : "Celebrate CPAN day on August 16th",
      "description" : "Give back to the community on CPAN day",
      "categories" : "community",
      "url" : "https://www.perl.com/article/celebrate-cpan-day-on-august-16th",
      "epoch" : 1407933797,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/celebrate-cpan-day-on-august-16th"
   },
   {
      "url" : "https://www.perl.com/article/rescue-legacy-code-with-modulinos",
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/article/rescue-legacy-code-with-modulinos",
      "epoch" : 1407414162,
      "tags" : [
         "module",
         "package",
         "modulino",
         "caller",
         "main",
         "test_more"
      ],
      "title" : "Rescue legacy code with modulinos",
      "description" : "How the modules-as-programs pattern provides a development path for scripts",
      "categories" : "development"
   },
   {
      "title" : "Parse Excel with ease using Perl",
      "tags" : [
         "cpan",
         "excel",
         "xls",
         "xlsx",
         "libre",
         "office",
         "open",
         "read",
         "spreadsheet_read"
      ],
      "categories" : "data",
      "description" : "Spreadsheet::Read makes parsing spreadsheets too easy",
      "url" : "https://www.perl.com/article/parse-excel-with-ease-using-perl",
      "url_path" : "/article/parse-excel-with-ease-using-perl",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1407246108
   },
   {
      "categories" : "cpan",
      "description" : "Our curated guide to July's new CPAN uploads",
      "title" : "What's new on CPAN July 2014",
      "tags" : [
         "mojolicious",
         "amazon",
         "hbase",
         "pcduino",
         "gnupg",
         "git",
         "aws",
         "docker",
         "duckduckgo"
      ],
      "url_path" : "/article/what-s-new-on-cpan-july-2014",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1406896739,
      "url" : "https://www.perl.com/article/what-s-new-on-cpan-july-2014"
   },
   {
      "epoch" : 1406634415,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/your-users-deserve-better-than-disqus",
      "url" : "https://www.perl.com/article/your-users-deserve-better-than-disqus",
      "categories" : "community",
      "description" : "Why Disqus is not the commenting system you're looking for",
      "tags" : [
         "security",
         "disqus",
         "comments",
         "privacy"
      ],
      "title" : "Your users deserve better than Disqus"
   },
   {
      "title" : "Create static web apps with Wget",
      "tags" : [
         "app",
         "mvc",
         "static",
         "perl",
         "framework",
         "wget",
         "recursive",
         "recursion",
         "webapp"
      ],
      "categories" : "apps",
      "description" : "An alternative to Wallflower",
      "url" : "https://www.perl.com/article/create-static-web-apps-with-wget",
      "url_path" : "/article/create-static-web-apps-with-wget",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1406033053
   },
   {
      "epoch" : 1405427212,
      "url_path" : "/article/generate-static-websites-from-dynamic-perl-web-apps",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/generate-static-websites-from-dynamic-perl-web-apps",
      "categories" : "web",
      "description" : "App::Wallflower generates static apps from PSGI applications",
      "title" : "Generate static websites from dynamic Perl web apps",
      "tags" : [
         "nginx",
         "mvc",
         "static",
         "web",
         "wallflower",
         "psgi",
         "framework"
      ]
   },
   {
      "title" : "HTML pro-parsing tips",
      "tags" : [
         "html",
         "xml",
         "parse",
         "web",
         "libxml2",
         "scrape",
         "xml_libxml"
      ],
      "categories" : "data",
      "description" : "A few tips for parsing HTML with XML::LibXML",
      "url" : "https://www.perl.com/article/html-pro-parsing-tips",
      "epoch" : 1404995625,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/html-pro-parsing-tips"
   },
   {
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---june-2014",
      "url_path" : "/article/what-s-new-on-cpan---june-2014",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1404396046,
      "tags" : [
         "module",
         "stratopan",
         "dancer",
         "mojolicious",
         "amazon",
         "raygun",
         "css",
         "go",
         "rabbitmq",
         "oeis",
         "cgi",
         "dist_zilla",
         "paypal",
         "jenkins"
      ],
      "title" : "What's new on CPAN - June 2014",
      "categories" : "cpan",
      "description" : "Our curated guide to June's new CPAN uploads"
   },
   {
      "description" : "Read about how DBIx::Class::InflateColumn::FS can simplify file management in your application",
      "categories" : "data",
      "title" : "Managing files is a breeze with this DBIx::Class plugin",
      "tags" : [
         "file",
         "dbix_class",
         "path_class_file",
         "upload",
         "orm",
         "application",
         "web"
      ],
      "url_path" : "/article/managing-files-is-a-breeze-with-this-dbix--class-plugin",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1404130645,
      "url" : "https://www.perl.com/article/managing-files-is-a-breeze-with-this-dbix--class-plugin"
   },
   {
      "title" : "YAPC::NA 2014 Talks Preview",
      "tags" : [
         "community",
         "news"
      ],
      "description" : "We pick out some of the most promising talks in the schedule",
      "categories" : "community",
      "url" : "https://www.perl.com/article/yapc--na-2014-talks-preview",
      "epoch" : 1403524541,
      "url_path" : "/article/yapc--na-2014-talks-preview",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "description" : "A step by step guide to installing Perl 5.20 on Android KitKat",
      "categories" : "tooling",
      "tags" : [
         "configuration",
         "sysadmin",
         "android",
         "kitkat"
      ],
      "title" : "How to build Perl on Android 4.4",
      "epoch" : 1402923441,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/how-to-build-perl-on-android-4-4",
      "url" : "https://www.perl.com/article/how-to-build-perl-on-android-4-4"
   },
   {
      "url" : "https://www.perl.com/article/perl-distributions--modules--packages-explained",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/perl-distributions--modules--packages-explained",
      "epoch" : 1402662360,
      "title" : "Perl distributions, modules, packages explained",
      "tags" : [
         "configuration",
         "cpan",
         "documentation",
         "module",
         "config",
         "distribution",
         "package"
      ],
      "description" : "Learn which files are in a distribution, the difference between a module and a package etc.",
      "categories" : "tooling"
   },
   {
      "tags" : [
         "irssi",
         "irc",
         "gnome3"
      ],
      "title" : "Get GNOME 3 popup alerts for IRC",
      "categories" : "apps",
      "description" : "Don't miss your IRC chats and messages",
      "url" : "https://www.perl.com/article/get-gnome-3-popup-alerts-for-irc",
      "epoch" : 1402317265,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/get-gnome-3-popup-alerts-for-irc"
   },
   {
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/create-professional-slideshows-in-seconds-with-app--revealup",
      "epoch" : 1402059596,
      "url" : "https://www.perl.com/article/create-professional-slideshows-in-seconds-with-app--revealup",
      "description" : "App::revealup converts markdown to slick HTML slide shows",
      "categories" : "apps",
      "tags" : [
         "app",
         "javascript",
         "github",
         "reveal_js"
      ],
      "title" : "Create professional slideshows in seconds with App::revealup"
   },
   {
      "categories" : "cpan",
      "description" : "A curated look at May's new CPAN uploads",
      "title" : "What's new on CPAN - May 2014",
      "tags" : [
         "news"
      ],
      "epoch" : 1401712295,
      "url_path" : "/article/what-s-new-on-cpan---may-2014",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---may-2014"
   },
   {
      "title" : "Perl v5.20 - what you need to know",
      "tags" : [
         "community",
         "news"
      ],
      "categories" : "development",
      "description" : "We review the new features, changes and enhancements of the new Perl release",
      "url" : "https://www.perl.com/article/perl-v5-20---what-you-need-to-know",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/perl-v5-20---what-you-need-to-know",
      "epoch" : 1401193372
   },
   {
      "categories" : "community",
      "description" : "A step by step guide to porting exercises",
      "title" : "How to contribute to the exercism.io Perl 5 repo",
      "tags" : [
         "community",
         "github",
         "open_source",
         "perl-5",
         "perl-6",
         "exercism_io"
      ],
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/how-to-contribute-to-the-exercism-io-perl-5-repo",
      "epoch" : 1400771353,
      "url" : "https://www.perl.com/article/how-to-contribute-to-the-exercism-io-perl-5-repo"
   },
   {
      "url" : "https://www.perl.com/article/become-a-better-programmer-with-exercism-io",
      "url_path" : "/article/become-a-better-programmer-with-exercism-io",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1400462107,
      "title" : "Become a better programmer with exercism.io",
      "tags" : [
         "community",
         "windows",
         "app",
         "open_source"
      ],
      "description" : "The open source programming puzzler that will level-up your Perl programming",
      "categories" : "community"
   },
   {
      "title" : "Debunk Perl's magic with B::Deparse",
      "tags" : [
         "debugging",
         "module"
      ],
      "categories" : "development",
      "description" : "We show you how to peak behind the curtain and inspect Perl code",
      "url" : "https://www.perl.com/article/debunk-perl-s-magic-with-b--deparse",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/debunk-perl-s-magic-with-b--deparse",
      "epoch" : 1400156391
   },
   {
      "title" : "Benchmarking subroutine signatures",
      "tags" : [
         "subroutine",
         "method",
         "optimization"
      ],
      "categories" : "development",
      "description" : "We review native subroutine signatures speed and show you how to make them faster",
      "url" : "https://www.perl.com/article/benchmarking-subroutine-signatures",
      "epoch" : 1399900756,
      "url_path" : "/article/benchmarking-subroutine-signatures",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "categories" : "data",
      "description" : "So simple a llama could do it",
      "title" : "Parsing data couldn't be easier with XML::Dataset",
      "tags" : [
         "cpan",
         "xml",
         "data",
         "parse"
      ],
      "url_path" : "/article/parsing-data-couldn-t-be-easier-with-xml--dataset",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1399605241,
      "url" : "https://www.perl.com/article/parsing-data-couldn-t-be-easier-with-xml--dataset"
   },
   {
      "url" : "https://www.perl.com/article/just-how-much-heavier-is-catalyst-than-dancer2-",
      "epoch" : 1399292949,
      "url_path" : "/article/just-how-much-heavier-is-catalyst-than-dancer2-",
      "authors" : [
         "david-farrell"
      ],
      "title" : "Just how much heavier is Catalyst than Dancer2?",
      "tags" : [
         "catalyst",
         "dancer",
         "mvc"
      ],
      "categories" : "web",
      "description" : "We compare the two web frameworks dependencies and test suites"
   },
   {
      "epoch" : 1398946807,
      "url_path" : "/article/what-s-new-on-cpan---april-2014",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---april-2014",
      "description" : "A curated look at April's new CPAN uploads",
      "categories" : "cpan",
      "title" : "What's new on CPAN - April 2014",
      "tags" : [
         "module",
         "news"
      ]
   },
   {
      "title" : "Is your login page secure?",
      "tags" : [
         "catalyst",
         "mvc",
         "security",
         "authentication"
      ],
      "description" : "A bumper article on secure web application logins with Catalyst",
      "categories" : "security",
      "url" : "https://www.perl.com/article/is-your-login-page-secure-",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/is-your-login-page-secure-",
      "epoch" : 1398654853
   },
   {
      "categories" : "community",
      "description" : "A collection of anti-Perl quotes, memes and images",
      "tags" : [
         "community",
         "other"
      ],
      "title" : "Perl hate",
      "url_path" : "/article/perl-hate",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1396844901,
      "url" : "https://www.perl.com/article/perl-hate"
   },
   {
      "description" : "A curated look at March's new CPAN uploads",
      "categories" : "cpan",
      "title" : "What's new on CPAN - March 2014",
      "tags" : [
         "module",
         "news"
      ],
      "epoch" : 1396581611,
      "url_path" : "/article/what-s-new-on-cpan---march-2014",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---march-2014"
   },
   {
      "url" : "https://www.perl.com/article/perl-web-application-security---http-headers",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/perl-web-application-security---http-headers",
      "epoch" : 1396268859,
      "tags" : [
         "catalyst",
         "dancer",
         "mojolicious",
         "mvc"
      ],
      "title" : "Perl web application security - HTTP headers",
      "description" : "Instantly upgrade your web application security with these headers",
      "categories" : "security"
   },
   {
      "categories" : "development",
      "description" : "Learn enough to be dangerous with one of Perl's most powerful features",
      "tags" : [
         "variable",
         "scalar",
         "array",
         "hash",
         "reference"
      ],
      "title" : "Perl references: create, dereference and debug with confidence",
      "url_path" : "/article/perl-references--create--dereference-and-debug-with-confidence",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1395943429,
      "url" : "https://www.perl.com/article/perl-references--create--dereference-and-debug-with-confidence"
   },
   {
      "url" : "https://www.perl.com/article/secure-your-passwords-with-keepass-and-perl",
      "epoch" : 1395666038,
      "url_path" : "/article/secure-your-passwords-with-keepass-and-perl",
      "authors" : [
         "david-farrell"
      ],
      "title" : "Secure your passwords with KeePass and Perl",
      "tags" : [
         "database",
         "module",
         "password_manager"
      ],
      "description" : "File::KeePass makes it easy to work with KeePass database files",
      "categories" : "apps"
   },
   {
      "epoch" : 1395406924,
      "url_path" : "/article/perltricks-com-is-a-year-old",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/perltricks-com-is-a-year-old",
      "categories" : "community",
      "description" : "PerlTricks.com launched a year ago. Happy Birthday us!",
      "tags" : [
         "community",
         "news",
         "perltricks"
      ],
      "title" : "PerlTricks.com is a year old"
   },
   {
      "url_path" : "/article/simple-web-framework-fastcgi-caching-with-nginx---part-2",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1395021249,
      "url" : "https://www.perl.com/article/simple-web-framework-fastcgi-caching-with-nginx---part-2",
      "categories" : "web",
      "description" : "Safely purge individually cached upstream responses",
      "title" : "Simple web framework FastCGI caching with nginx - part 2",
      "tags" : [
         "module",
         "nginx",
         "dancer",
         "mojolicious",
         "cache"
      ]
   },
   {
      "url" : "https://www.perl.com/article/simple-web-framework-fastcgi-caching-with-nginx---part-1",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/simple-web-framework-fastcgi-caching-with-nginx---part-1",
      "epoch" : 1394507880,
      "tags" : [
         "nginx",
         "catalyst",
         "dancer",
         "mojolicious",
         "cache"
      ],
      "title" : "Simple web framework FastCGI caching with nginx - part 1",
      "categories" : "web",
      "description" : "How to cache responses from fastcgi apps and how to clear the cache"
   },
   {
      "description" : "We talk to brian about Mastering Perl second edition, technical writing and his new Perl projects!",
      "categories" : "community",
      "tags" : [
         "community",
         "interview"
      ],
      "title" : "Perl master - an interview with brian d foy",
      "epoch" : 1394077937,
      "url_path" : "/article/perl-master---an-interview-with-brian-d-foy",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/perl-master---an-interview-with-brian-d-foy"
   },
   {
      "epoch" : 1393819836,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/what-s-new-on-cpan---february-2014",
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---february-2014",
      "description" : "A curated look at last month's new CPAN uploads",
      "categories" : "cpan",
      "tags" : [
         "module",
         "news"
      ],
      "title" : "What's new on CPAN - February 2014"
   },
   {
      "categories" : "community",
      "description" : "Three winners, three awesome Perl tricks. Read on to find out more...",
      "title" : "The Perl Nerd Merit Badge Contest results",
      "tags" : [],
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/the-perl-nerd-merit-badge-contest-results",
      "epoch" : 1393595842,
      "url" : "https://www.perl.com/article/the-perl-nerd-merit-badge-contest-results"
   },
   {
      "title" : "Perl levels up with native subroutine signatures",
      "tags" : [
         "modernperl",
         "subroutine",
         "method"
      ],
      "description" : "The syntax, the benefits and what's coming next",
      "categories" : "development",
      "url" : "https://www.perl.com/article/perl-levels-up-with-native-subroutine-signatures",
      "url_path" : "/article/perl-levels-up-with-native-subroutine-signatures",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1393214152
   },
   {
      "description" : "Get the right modules and versions everytime",
      "categories" : "tooling",
      "title" : "Easy application dependency management with Stratopan",
      "tags" : [
         "community",
         "sysadmin",
         "config",
         "stratopan",
         "cloud"
      ],
      "epoch" : 1392868529,
      "url_path" : "/article/easy-application-dependency-management-with-stratopan",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/easy-application-dependency-management-with-stratopan"
   },
   {
      "epoch" : 1392819511,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/last-2-days-of-the-perl-nerd-merit-badge-contest",
      "url" : "https://www.perl.com/article/last-2-days-of-the-perl-nerd-merit-badge-contest",
      "categories" : "community",
      "description" : "Code snippets large and small, get them in!",
      "title" : "Last 2 days of the Perl Nerd Merit Badge Contest",
      "tags" : []
   },
   {
      "title" : "Is PearlBee Perl's next great blogging platform?",
      "tags" : [
         "community",
         "blog",
         "github",
         "movable_type",
         "evozon",
         "open_source"
      ],
      "description" : "We review the new open source blogging platform",
      "categories" : "apps",
      "url" : "https://www.perl.com/article/is-pearlbee-perl-s-next-great-blogging-platform-",
      "epoch" : 1392610161,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/is-pearlbee-perl-s-next-great-blogging-platform-"
   },
   {
      "tags" : [
         "modernperl",
         "reference",
         "news",
         "postfix"
      ],
      "title" : "Cool new Perl feature: postfix dereferencing",
      "categories" : "development",
      "description" : "A sneak peak at Perl v5.20's most interesting change",
      "url" : "https://www.perl.com/article/cool-new-perl-feature--postfix-dereferencing",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/cool-new-perl-feature--postfix-dereferencing",
      "epoch" : 1392267602
   },
   {
      "url_path" : "/pub/2014/02/perl-today-february-2014",
      "authors" : [
         "brian-d-foy"
      ],
      "epoch" : 1392012000,
      "url" : "https://www.perl.com/pub/2014/02/perl-today-february-2014",
      "description" : "brian d foy explores the state of Perl in 2014 by soliciting opinions from various respected Perl programmers.",
      "categories" : "community",
      "title" : "Perl Today (February 2014)",
      "tags" : []
   },
   {
      "title" : "Book review: Mastering Perl 2nd edition",
      "tags" : [
         "book-review"
      ],
      "description" : "Learn how to bend Perl to your will with brian d foy's Mastering Perl",
      "categories" : "community",
      "url" : "https://www.perl.com/article/book-review--mastering-perl-2nd-edition",
      "url_path" : "/article/book-review--mastering-perl-2nd-edition",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1392009884
   },
   {
      "title" : "3 ways to include data with your Perl distribution",
      "tags" : [
         "configuration",
         "module",
         "__data__"
      ],
      "categories" : "data",
      "description" : "TIMTOWDI",
      "url" : "https://www.perl.com/article/3-ways-to-include-data-with-your-perl-distribution",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/3-ways-to-include-data-with-your-perl-distribution",
      "epoch" : 1391745913
   },
   {
      "description" : "A curated look at the last month's new CPAN uploads",
      "categories" : "cpan",
      "title" : "What's new on CPAN - January 2014",
      "tags" : [
         "module",
         "news"
      ],
      "epoch" : 1391434184,
      "url_path" : "/article/what-s-new-on-cpan---january-2014",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/what-s-new-on-cpan---january-2014"
   },
   {
      "epoch" : 1390963708,
      "url_path" : "/article/announcing--the-perl-nerd-merit-badge-contest",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/announcing--the-perl-nerd-merit-badge-contest",
      "description" : "Enter for a chance to win an exclusive Perl Nerd Merit Badge",
      "categories" : "community",
      "title" : "Announcing: the Perl Nerd Merit Badge contest",
      "tags" : [
         "community",
         "contest",
         "velociraptor"
      ]
   },
   {
      "title" : "Download a YouTube video with one line of Perl",
      "tags" : [
         "one_liner",
         "youtube"
      ],
      "description" : "... and a lot of of help from WWW::YouTube::Download",
      "categories" : "web",
      "url" : "https://www.perl.com/article/download-a-youtube-video-with-one-line-of-perl",
      "epoch" : 1390776077,
      "url_path" : "/article/download-a-youtube-video-with-one-line-of-perl",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "categories" : "community",
      "description" : "We catch up with the prolific CPAN module author",
      "title" : "An interview with Steven Haryanto",
      "tags" : [
         "community",
         "cpan",
         "interview"
      ],
      "epoch" : 1390533429,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/an-interview-with-steven-haryanto",
      "url" : "https://www.perl.com/article/an-interview-with-steven-haryanto"
   },
   {
      "title" : "Make your code run faster with Perl's secret turbo module",
      "tags" : [
         "module",
         "multicore",
         "optimization",
         "multithreading"
      ],
      "categories" : "development",
      "description" : "Multi-core programming is a breeze with MCE",
      "url" : "https://www.perl.com/article/make-your-code-run-faster-with-perl-s-secret-turbo-module",
      "epoch" : 1390274560,
      "url_path" : "/article/make-your-code-run-faster-with-perl-s-secret-turbo-module",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "epoch" : 1389576872,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/display-beautiful-perl-code-in-html-without-javascript",
      "url" : "https://www.perl.com/article/display-beautiful-perl-code-in-html-without-javascript",
      "categories" : "web",
      "description" : "PPI::Prettify makes pretty-printing Perl code as HTML easy",
      "title" : "Display beautiful Perl code in HTML without JavaScript",
      "tags" : [
         "module",
         "syntax",
         "html",
         "javascript"
      ]
   },
   {
      "description" : "How to parse, print, format, compare and do math with datetimes in Perl",
      "categories" : "data",
      "title" : "Solve almost any datetime need with Time::Piece",
      "tags" : [
         "module",
         "date",
         "time",
         "datetime",
         "strptime",
         "strftime"
      ],
      "epoch" : 1389327865,
      "url_path" : "/article/solve-almost-any-datetime-need-with-time--piece",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/solve-almost-any-datetime-need-with-time--piece"
   },
   {
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/the-easy-way-to-build-stand-alone-perl-apps",
      "epoch" : 1388964115,
      "url" : "https://www.perl.com/article/the-easy-way-to-build-stand-alone-perl-apps",
      "description" : "Making dependency-free Perl applications is simple with App::FatPacker",
      "categories" : "apps",
      "title" : "The easy way to build stand-alone Perl apps",
      "tags" : [
         "configuration",
         "app"
      ]
   },
   {
      "categories" : "tooling",
      "description" : "How to get a local non-root install of Image::Magick working with Perlbrew",
      "tags" : [
         "configuration",
         "sysadmin",
         "perlbrew",
         "imagemagick"
      ],
      "title" : "Shazam! Use Image::Magick with Perlbrew in minutes",
      "epoch" : 1388619789,
      "url_path" : "/article/shazam--use-image--magick-with-perlbrew-in-minutes",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/shazam--use-image--magick-with-perlbrew-in-minutes"
   },
   {
      "title" : "The Year in Perl 2013 Retrospective",
      "tags" : [],
      "categories" : "community",
      "description" : "Perl had a great year in 2013. Here are some highlights.",
      "url" : "https://www.perl.com/pub/2014/01/the-year-in-perl-2013-retrospective",
      "authors" : [
         "chromatic"
      ],
      "url_path" : "/pub/2014/01/the-year-in-perl-2013-retrospective",
      "epoch" : 1388556001
   },
   {
      "categories" : "community",
      "description" : "Happy holidays; enjoy this discount on the latest Perl book until 15th January 2014",
      "title" : "Get 30% off the new Perl One Liners book",
      "tags" : [
         "one_liner",
         "news",
         "offer"
      ],
      "url_path" : "/article/get-30--off-the-new-perl-one-liners-book",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1388015400,
      "url" : "https://www.perl.com/article/get-30--off-the-new-perl-one-liners-book"
   },
   {
      "url_path" : "/article/schedule-jobs-like-a-boss-with-every",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1387724931,
      "url" : "https://www.perl.com/article/schedule-jobs-like-a-boss-with-every",
      "description" : "Introducing every, the cron scheduling app written in Perl",
      "categories" : "apps",
      "tags" : [
         "linux",
         "sysadmin",
         "config",
         "osx",
         "cron"
      ],
      "title" : "Schedule jobs like a boss with every"
   },
   {
      "epoch" : 1387338458,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/an-interview-with-peteris-krumins",
      "url" : "https://www.perl.com/article/an-interview-with-peteris-krumins",
      "description" : "We talk about his favourite Perl one liners, publishing books and Perl on Windows!",
      "categories" : "community",
      "tags" : [
         "powershell",
         "bash",
         "interview",
         "one_liner"
      ],
      "title" : "An interview with Peteris Krumins"
   },
   {
      "url" : "https://www.perl.com/article/the-ultimate-guide-to-windows-and-unix-file-line-ending-conversion-in-perl-",
      "url_path" : "/article/the-ultimate-guide-to-windows-and-unix-file-line-ending-conversion-in-perl-",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1387055608,
      "title" : "The ultimate guide to Windows and Unix file line ending conversion in Perl ",
      "tags" : [
         "file",
         "linux",
         "windows",
         "powershell",
         "bash",
         "crlf",
         "osx"
      ],
      "description" : "Think you know how to fix CRLF in one line of Perl? There might be more to it than you think ...",
      "categories" : "development"
   },
   {
      "tags" : [
         "object_oriented",
         "object",
         "pattern",
         "gof"
      ],
      "title" : "Implementing the singleton pattern in Perl",
      "description" : "Learn when and how to use this classic \"gang of four\" code pattern",
      "categories" : "development",
      "url" : "https://www.perl.com/article/implementing-the-singleton-pattern-in-perl",
      "url_path" : "/article/implementing-the-singleton-pattern-in-perl",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1386736415
   },
   {
      "categories" : "community",
      "description" : "Learn about the tools Jeffrey uses to code in Perl, upcoming Stratopan features and more!",
      "tags" : [
         "community",
         "culture",
         "stratopan",
         "cloud",
         "saas",
         "interview"
      ],
      "title" : " An interview with Jeffrey Ryan Thalhammer",
      "epoch" : 1386219300,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/-an-interview-with-jeffrey-ryan-thalhammer",
      "url" : "https://www.perl.com/article/-an-interview-with-jeffrey-ryan-thalhammer"
   },
   {
      "url" : "https://www.perl.com/article/wear-the-cloak-of-invisibility-with-openvpn-and-perl",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/wear-the-cloak-of-invisibility-with-openvpn-and-perl",
      "epoch" : 1385959091,
      "tags" : [
         "linux",
         "useragent",
         "openvpn",
         "screen_scraping"
      ],
      "title" : "Wear the cloak of invisibility with OpenVPN and Perl",
      "description" : "How to covertly screen-scrape behind an encrypted connection and masked identity",
      "categories" : "security"
   },
   {
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/add-moose-style-attribute-accessors-to-your-perl-classes",
      "epoch" : 1385350080,
      "url" : "https://www.perl.com/article/add-moose-style-attribute-accessors-to-your-perl-classes",
      "description" : "Writing accessors in vanilla object oriented Perl doesn't have to lead to verbose boilerplate code",
      "categories" : "development",
      "title" : "Add Moose-style attribute accessors to your Perl classes",
      "tags" : [
         "class",
         "object",
         "attribute",
         "method",
         "typeglob"
      ]
   },
   {
      "categories" : "tooling",
      "description" : "Learn how to manage your Perl modules in the cloud with Stratopan",
      "tags" : [
         "sysadmin",
         "config",
         "stratopan",
         "cloud",
         "saas"
      ],
      "title" : "A Stratopan quick start user guide",
      "epoch" : 1384489433,
      "url_path" : "/article/a-stratopan-quick-start-user-guide",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/a-stratopan-quick-start-user-guide"
   },
   {
      "url" : "https://www.perl.com/article/use-roles-in-object-oriented-perl-with-role--tiny",
      "epoch" : 1384145330,
      "url_path" : "/article/use-roles-in-object-oriented-perl-with-role--tiny",
      "authors" : [
         "david-farrell"
      ],
      "title" : "Use roles in object oriented Perl with Role::Tiny",
      "tags" : [
         "module",
         "object_oriented",
         "object",
         "role"
      ],
      "categories" : "development",
      "description" : "Get roles / traits with minimal overhead"
   },
   {
      "url" : "https://www.perl.com/article/understanding-the-modulo-operator",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/understanding-the-modulo-operator",
      "epoch" : 1383529643,
      "tags" : [
         "operator",
         "division",
         "modulo"
      ],
      "title" : "Understanding the modulo operator",
      "categories" : "development",
      "description" : "... and implementing a remainder function"
   },
   {
      "description" : "Ever had a program crash and wanted to get more details about where and why? The CPAN module Carp::Always is perfect for this.",
      "categories" : "development",
      "tags" : [],
      "title" : "Enable Backtraces with Carp::Always (Modern Perl Tips)",
      "authors" : [
         "chromatic"
      ],
      "url_path" : "/pub/2013/10/enable-backtraces-with-carpalways-modern-perl-tips",
      "epoch" : 1382940001,
      "url" : "https://www.perl.com/pub/2013/10/enable-backtraces-with-carpalways-modern-perl-tips"
   },
   {
      "categories" : "development",
      "description" : "STDOUT is the Perl filehandle for printing standard output. Unless a filehandle is specified, all standard printed output in Perl will go to the terminal. Because STDOUT is just a global variable, it can be redirected and restored. Want to implement logging on a program without changing every print statement in the source code? Want to capture the standard output of a perl CRON job? Read on.",
      "tags" : [
         "file",
         "filehandle",
         "windows",
         "powershell",
         "bash",
         "stdout",
         "log"
      ],
      "title" : "How to redirect and restore STDOUT",
      "epoch" : 1382896114,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/how-to-redirect-and-restore-stdout",
      "url" : "https://www.perl.com/article/how-to-redirect-and-restore-stdout"
   },
   {
      "url" : "https://www.perl.com/article/find-cpan-mirrors-and-configure-the-local-cpan-mirror-list",
      "epoch" : 1382296020,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/find-cpan-mirrors-and-configure-the-local-cpan-mirror-list",
      "tags" : [
         "configuration",
         "cpan",
         "module",
         "sysadmin",
         "config"
      ],
      "title" : "Find CPAN mirrors and configure the local CPAN mirror list",
      "categories" : "cpan",
      "description" : "CPAN mirrors are online repositories which host or \"mirror\" the Perl module distributions on CPAN. There are hundreds of CPAN mirrors dispersed throughout the World. When the CPAN program is run for the first time on a machine, it will configure the CPAN mirror list to use for checking for new versions of modules and downloading Perl distributions.  All CPAN mirrors are not created equally though: the distribution list's age, speed and the geographic location vary from mirror to mirror and so you may want to re-configure your local CPAN mirror list to suit your needs. This article describes how to find CPAN mirrors and edit the local CPAN mirror configuration."
   },
   {
      "tags" : [
         "configuration",
         "linux",
         "unix",
         "sysadmin",
         "mac",
         "config"
      ],
      "title" : "How to schedule Perl scripts using cron",
      "description" : "Cron is a job scheduling program available on UNIX-like platforms. Most system commands can be scheduled including the execution of Perl programs. Once a job is setup, cron will run it as scheduled even if the user is not logged in, which can be a great way to automate sysadmin tasks or repetitive jobs. This article describes how to run Perl scripts with cron.",
      "categories" : "apps",
      "url" : "https://www.perl.com/article/how-to-schedule-perl-scripts-using-cron",
      "url_path" : "/article/how-to-schedule-perl-scripts-using-cron",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1381456460
   },
   {
      "epoch" : 1380760938,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/how-to-read-a-string-into-an-array-of-characters-using-split",
      "url" : "https://www.perl.com/article/how-to-read-a-string-into-an-array-of-characters-using-split",
      "categories" : "development",
      "description" : "Perl's split function has a useful feature that will split a string into characters. This works by supplying an empty regex pattern (\"//\") to the split function. This can be used to easily split a word into an array of letters, for example:",
      "tags" : [
         "string",
         "array",
         "split"
      ],
      "title" : "How to read a string into an array of characters using split"
   },
   {
      "url" : "https://www.perl.com/article/how-to-benchmark-perl-code-for-speed",
      "epoch" : 1380481974,
      "url_path" : "/article/how-to-benchmark-perl-code-for-speed",
      "authors" : [
         "david-farrell"
      ],
      "title" : "How to benchmark Perl code for speed",
      "tags" : [
         "benchmarking",
         "module",
         "core"
      ],
      "description" : "Benchmarking is easy with the Benchmark module",
      "categories" : "development"
   },
   {
      "url" : "https://www.perl.com/article/get-detailed-perl-version-configuration-information",
      "url_path" : "/article/get-detailed-perl-version-configuration-information",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1380245118,
      "tags" : [
         "configuration",
         "version"
      ],
      "title" : "Get detailed Perl version configuration information",
      "categories" : "tooling",
      "description" : "Most Perl programmers know they can find out the current Perl version by typing \"perl -v\" as the command line:"
   },
   {
      "url" : "https://www.perl.com/article/how-to-load-yaml-config-files",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/how-to-load-yaml-config-files",
      "epoch" : 1379387890,
      "title" : "How to Load YAML Config Files",
      "tags" : [
         "configuration",
         "config",
         "yaml",
         "libyaml"
      ],
      "categories" : "data",
      "description" : "Reading YAML config files is easy with Perl"
   },
   {
      "url_path" : "/article/banish-unsightly-variable-assignments-with-method--signatures",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1378681178,
      "url" : "https://www.perl.com/article/banish-unsightly-variable-assignments-with-method--signatures",
      "categories" : "development",
      "description" : "Add subroutine signatures to Perl",
      "tags" : [
         "subroutine",
         "syntax",
         "method"
      ],
      "title" : "Banish unsightly variable assignments with Method::Signatures"
   },
   {
      "url" : "https://www.perl.com/article/perl-destructor-not-being-called--here-s-why",
      "epoch" : 1377572250,
      "url_path" : "/article/perl-destructor-not-being-called--here-s-why",
      "authors" : [
         "david-farrell"
      ],
      "tags" : [
         "object_oriented",
         "object",
         "signal",
         "sigint",
         "destructor",
         "sigtrap"
      ],
      "title" : "Perl destructor not being called? Here's why",
      "categories" : "development",
      "description" : "If you're using a Perl destructor method ('DESTROY', 'DEMOLISH') it may not be called if the Perl process is terminated abruptly by a signal. To fix this, just add the sigtrap pragma to your program: "
   },
   {
      "tags" : [
         "linux",
         "windows",
         "mac",
         "global_variables",
         "core",
         "signal",
         "posix",
         "sigint"
      ],
      "title" : "Catch and Handle Signals in Perl",
      "categories" : "development",
      "description" : "We show you how to listen for signals and handle them gracefully",
      "url" : "https://www.perl.com/article/catch-and-handle-signals-in-perl",
      "epoch" : 1376851731,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/catch-and-handle-signals-in-perl"
   },
   {
      "categories" : "tooling",
      "description" : "This is a simple trick for conveniently running local Perl as a root user on UNIX-based systems.",
      "title" : "Run local Perl as root",
      "tags" : [
         "configuration",
         "linux",
         "unix",
         "bash",
         "mac",
         "perlbrew"
      ],
      "epoch" : 1376145198,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/run-local-perl-as-root",
      "url" : "https://www.perl.com/article/run-local-perl-as-root"
   },
   {
      "url" : "https://www.perl.com/article/call-object-methods-without-an-object-reference",
      "epoch" : 1375552563,
      "url_path" : "/article/call-object-methods-without-an-object-reference",
      "authors" : [
         "david-farrell"
      ],
      "title" : "Call object methods without an object reference",
      "tags" : [
         "object_oriented",
         "object",
         "method",
         "wizardry"
      ],
      "categories" : "development",
      "description" : "Perl's flexible syntax accepts all kinds of shenanigans and hackery. This article describes one such trick to call object methods without including the referent object (sort of)."
   },
   {
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/how-to-track-new-cpan-releases",
      "epoch" : 1375060291,
      "url" : "https://www.perl.com/article/how-to-track-new-cpan-releases",
      "description" : "CPAN is a fantastic Perl resource with thousands of modules and new ones being added all the time. But how do you keep track of what's being released? This article describes three techniques for keeping tabs on the latest CPAN releases. ",
      "categories" : "cpan",
      "tags" : [
         "community",
         "configuration",
         "cpan",
         "module",
         "subroutine",
         "sysadmin"
      ],
      "title" : "How to track new CPAN releases"
   },
   {
      "categories" : "development",
      "description" : "An anonymous function in Perl is an unnamed subroutine. But what are they good for? This article shows how through using anonymous functions it's possible to write more generic, re-usable Perl code.",
      "tags" : [
         "functional",
         "subroutine",
         "sysadmin"
      ],
      "title" : "Re-use code with Perl's anonymous functions",
      "epoch" : 1374030655,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/re-use-code-with-perl-s-anonymous-functions",
      "url" : "https://www.perl.com/article/re-use-code-with-perl-s-anonymous-functions"
   },
   {
      "title" : "Use the logical-or and defined-or operators to provide default subroutine variable behaviour",
      "tags" : [
         "modernperl",
         "operator",
         "subroutine"
      ],
      "categories" : "development",
      "description" : "Perl subroutines do not have signatures so variables must be initialized and arguments assigned to them inside the subroutine code. This article describes two useful shortcuts that can simplify this process.",
      "url" : "https://www.perl.com/article/use-the-logical-or-and-defined-or-operators-to-provide-default-subroutine-variable-behaviour",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/use-the-logical-or-and-defined-or-operators-to-provide-default-subroutine-variable-behaviour",
      "epoch" : 1373143360
   },
   {
      "url" : "https://www.perl.com/article/upload-to-cpan-from-the-command-line",
      "url_path" : "/article/upload-to-cpan-from-the-command-line",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1372563852,
      "title" : "Upload to CPAN from the command line",
      "tags" : [
         "configuration",
         "cpan",
         "sysadmin"
      ],
      "description" : "It's super easy with CPAN::Uploader",
      "categories" : "cpan"
   },
   {
      "epoch" : 1372374482,
      "url_path" : "/article/subscribe-to-perl-weekly",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/subscribe-to-perl-weekly",
      "categories" : "community",
      "description" : "Stay up to date with Perl news",
      "title" : "Subscribe to Perl Weekly",
      "tags" : [
         "community",
         "culture"
      ]
   },
   {
      "categories" : "development",
      "description" : "Hashes are one of Perl's core data types. This article describes the main functions and syntax rules for for working with hashes in Perl.",
      "tags" : [
         "loop",
         "variable",
         "hash",
         "core",
         "delete",
         "add",
         "key",
         "value",
         "pair",
         "length",
         "size"
      ],
      "title" : "Perl hash basics: create, update, loop, delete and sort",
      "url_path" : "/article/perl-hash-basics--create--update--loop--delete-and-sort",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1371418338,
      "url" : "https://www.perl.com/article/perl-hash-basics--create--update--loop--delete-and-sort"
   },
   {
      "epoch" : 1370438572,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/use-do-to-execute-perl-code-stored-in-files",
      "url" : "https://www.perl.com/article/use-do-to-execute-perl-code-stored-in-files",
      "categories" : "development",
      "description" : "It's cleaner than eval",
      "title" : "Use do to execute Perl code stored in files",
      "tags" : [
         "file",
         "syntax",
         "wizardry",
         "eval",
         "do"
      ]
   },
   {
      "epoch" : 1369743915,
      "url_path" : "/article/execute-perl-code-stored-in-a-text-file-with-eval",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/execute-perl-code-stored-in-a-text-file-with-eval",
      "description" : "Runtime abitrary code execution",
      "categories" : "development",
      "title" : "Execute Perl code stored in a text file with eval",
      "tags" : [
         "filehandle",
         "string",
         "syntax",
         "wizardry",
         "eval"
      ]
   },
   {
      "categories" : "development",
      "description" : "If you need to write object oriented Perl code with no dependencies, then you need to use the old school Perl syntax. This article describes the main features of old school object oriented Perl including class declaration, constructors, destructors, methods, attributes, accessors and inheritance.",
      "tags" : [
         "object_oriented",
         "old_school_perl",
         "class",
         "object",
         "attribute",
         "inheritance"
      ],
      "title" : "Old School Object Oriented Perl",
      "epoch" : 1369008701,
      "url_path" : "/article/old-school-object-oriented-perl",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/old-school-object-oriented-perl"
   },
   {
      "url_path" : "/article/perl-tokens-you-should-know",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1368271072,
      "url" : "https://www.perl.com/article/perl-tokens-you-should-know",
      "description" : "A brief review of some useful special literals",
      "categories" : "development",
      "title" : "Perl tokens you should know",
      "tags" : [
         "variable",
         "token",
         "global_variables",
         "__package__",
         "__end__",
         "__data__"
      ]
   },
   {
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/dynamic-variable-names-with-a-dereferencing-block",
      "epoch" : 1367525815,
      "url" : "https://www.perl.com/article/dynamic-variable-names-with-a-dereferencing-block",
      "description" : "Perl is remarkably flexible and allows you to achieve all kinds of wizardry with the language. One example of this is using a dereferencing block to use a scalar value as a variable name. This allows you to use variables with dynamic names.",
      "categories" : "development",
      "title" : "Dynamic variable names with a dereferencing block",
      "tags" : [
         "regex",
         "variable",
         "dereference",
         "syntax"
      ]
   },
   {
      "description" : "Another cool way to get the version of a module",
      "categories" : "tooling",
      "title" : "Use Module::Version to get the version of an installed Perl module",
      "tags" : [
         "configuration",
         "module"
      ],
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/use-module--version-to-get-the-version-of-an-installed-perl-module",
      "epoch" : 1366915188,
      "url" : "https://www.perl.com/article/use-module--version-to-get-the-version-of-an-installed-perl-module"
   },
   {
      "url" : "https://www.perl.com/article/read-an-entire-file-into-a-string",
      "epoch" : 1366577655,
      "url_path" : "/article/read-an-entire-file-into-a-string",
      "authors" : [
         "david-farrell"
      ],
      "tags" : [
         "file",
         "filehandle",
         "open",
         "slurp"
      ],
      "title" : "Read an entire file into a string",
      "categories" : "data",
      "description" : "TIMTOWDI"
   },
   {
      "categories" : "development",
      "description" : "One way to reduce the verbosity of Perl code is to replace if-else statements with a conditional operator expression. The conditional operator (aka ternary operator) takes the form: <b>logical test</b> ? <b>value if true</b> : <b>value if false</b>.",
      "tags" : [
         "operator",
         "syntax"
      ],
      "title" : "The conditional (ternary) operator",
      "epoch" : 1366153960,
      "url_path" : "/article/the-conditional--ternary--operator",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/the-conditional--ternary--operator"
   },
   {
      "url_path" : "/article/installing-perl-modules-with-c-library-dependencies",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1366051046,
      "url" : "https://www.perl.com/article/installing-perl-modules-with-c-library-dependencies",
      "description" : "How to tackle this tricky config issue",
      "categories" : "managing-perl",
      "tags" : [
         "configuration",
         "cpan",
         "debugging",
         "documentation",
         "linux",
         "networking",
         "sysadmin"
      ],
      "title" : "Installing Perl modules with C library dependencies"
   },
   {
      "epoch" : 1365856285,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/crowd-funded-perl-development--pinto",
      "url" : "https://www.perl.com/article/crowd-funded-perl-development--pinto",
      "description" : "Support Perl development with Crowdtilt",
      "categories" : "community",
      "tags" : [
         "community",
         "culture"
      ],
      "title" : "Crowd funded Perl development: Pinto"
   },
   {
      "title" : "Perl for loops",
      "tags" : [
         "loop",
         "array",
         "foreach",
         "for"
      ],
      "categories" : "development",
      "description" : "Perl's for loops are a powerful feature that, like the rest of Perl can be as concise, flexible and versatile required. This article covers the core features for Perl's for loops.",
      "url" : "https://www.perl.com/article/perl-for-loops",
      "epoch" : 1365761024,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/perl-for-loops"
   },
   {
      "tags" : [
         "flow",
         "linux",
         "unix",
         "variable",
         "windows",
         "mac"
      ],
      "title" : "Test if the user is root",
      "description" : "When Perl is executing a program, it maintains the user id of the process owner in a global variable ($<). When a Perl program is executed by root or a user with root privileges (e.g. using the sudo command), the user id variable is always set to zero. This can be checked at the command line:",
      "categories" : "development",
      "url" : "https://www.perl.com/article/test-if-the-user-is-root",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/test-if-the-user-is-root",
      "epoch" : 1365630522
   },
   {
      "title" : "List shortcuts: qw the quote whitespace operator",
      "tags" : [
         "operator",
         "string",
         "array",
         "syntax"
      ],
      "categories" : "development",
      "description" : "A popular way to build a list of literal quotes in Perl is to use the quote whitespace operator (qw). It's terse, versatile and elegant. To see why, let's look at a typical statement using a list of strings:",
      "url" : "https://www.perl.com/article/list-shortcuts--qw-the-quote-whitespace-operator",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/list-shortcuts--qw-the-quote-whitespace-operator",
      "epoch" : 1365465731
   },
   {
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/list-all-perl-modules-installed-via-cpan",
      "epoch" : 1365360731,
      "url" : "https://www.perl.com/article/list-all-perl-modules-installed-via-cpan",
      "description" : "A quick way to list all non-core modules installed via CPAN using the command line:",
      "categories" : "cpan",
      "title" : "List all Perl modules installed via CPAN",
      "tags" : [
         "cpan",
         "module",
         "sysadmin"
      ]
   },
   {
      "title" : "Modern Perl mecca: modernperlbooks.com",
      "tags" : [
         "community",
         "culture",
         "modernperl"
      ],
      "description" : " Although not precisely defined, <i>Modern Perl</i> programming refers to the use of best practice coding syntax, environment configuration tools, new Perl modules and the general joie de vivre associated with Perl since version 5.10.2. During this time the Perl language and available modules went through an upgrade of several tons of awesome, which resulted in a more concise, idiomatic syntax, and powerful new tools including web frameworks, ORMs and configuration managers.",
      "categories" : "community",
      "url" : "https://www.perl.com/article/modern-perl-mecca--modernperlbooks-com",
      "epoch" : 1365281372,
      "url_path" : "/article/modern-perl-mecca--modernperlbooks-com",
      "authors" : [
         "david-farrell"
      ]
   },
   {
      "title" : "Perl arrays 101 - create, loop and manipulate",
      "tags" : [
         "array",
         "syntax",
         "push",
         "pop",
         "shift",
         "unshift",
         "foreach"
      ],
      "categories" : "development",
      "description" : "Arrays in Perl contain an ordered list of values that can be accessed using built-in functions. They are one of the most useful data structures and frequently used in Perl programming.",
      "url" : "https://www.perl.com/article/perl-arrays-101---create--loop-and-manipulate",
      "epoch" : 1365106971,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/perl-arrays-101---create--loop-and-manipulate"
   },
   {
      "tags" : [
         "string",
         "variable",
         "scalar",
         "array",
         "syntax"
      ],
      "title" : "Upgrade your list printing using field separator variables",
      "categories" : "development",
      "description" : "A typical way to print every element of an array in Perl is using a foreach loop:",
      "url" : "https://www.perl.com/article/upgrade-your-list-printing-using-field-separator-variables",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/upgrade-your-list-printing-using-field-separator-variables",
      "epoch" : 1365027868
   },
   {
      "epoch" : 1364940885,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/repeat-strings-with-the-repetition-operator-repeat-strings-with-the-repetition-operator",
      "url" : "https://www.perl.com/article/repeat-strings-with-the-repetition-operator-repeat-strings-with-the-repetition-operator",
      "categories" : "development",
      "description" : "You get the idea - Perl has a repetition operator (x) that repeats the scalar or list on its left by the number on it's right (like multiplication).",
      "tags" : [
         "operator",
         "string"
      ],
      "title" : "Repeat strings with the repetition operator Repeat strings with the repetition operator"
   },
   {
      "url" : "https://www.perl.com/article/check-your-module-pod-using-perldoc",
      "url_path" : "/article/check-your-module-pod-using-perldoc",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1364856335,
      "tags" : [
         "debugging",
         "documentation",
         "pod"
      ],
      "title" : "Check your module POD using perldoc",
      "description" : "Perl ships with a command-line program called perldoc that makes it easier to search and read Perl's vast documentation in the POD markup language. If perldoc is called with the -F flag, it will display the POD markup of an input file - this can be useful when your are developing a new Perl distribution and want to check the appearance of the POD in your module before it appears on CPAN for all to see.",
      "categories" : "testing"
   },
   {
      "url_path" : "/article/perl-string-functions---concatenate-substring-and-split",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1364771074,
      "url" : "https://www.perl.com/article/perl-string-functions---concatenate-substring-and-split",
      "categories" : "development",
      "description" : "Perl has many string functions, let's take a look at a some of the most common ones: concatenate, substring and split.",
      "tags" : [
         "operator",
         "string",
         "syntax"
      ],
      "title" : "Perl string functions - concatenate substring and split"
   },
   {
      "tags" : [
         "operator",
         "string",
         "variable"
      ],
      "title" : "Quoting strings in Perl - even ones containing apostrophes and quote or speech marks",
      "categories" : "development",
      "description" : "Broadly speaking Perl has two types of strings: quotes that are interpolated at runtime and literal quotes that are not interpolated. Let's review each of these in turn.",
      "url" : "https://www.perl.com/article/quoting-strings-in-perl---even-ones-containing-apostrophes-and-quote-or-speech-marks",
      "epoch" : 1364669381,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/quoting-strings-in-perl---even-ones-containing-apostrophes-and-quote-or-speech-marks"
   },
   {
      "url" : "https://www.perl.com/article/find-the-index-of-the-last-element-in-an-array",
      "epoch" : 1364513433,
      "url_path" : "/article/find-the-index-of-the-last-element-in-an-array",
      "authors" : [
         "david-farrell"
      ],
      "title" : "Find the index of the last element in an array",
      "tags" : [
         "array",
         "dereference",
         "syntax"
      ],
      "categories" : "development",
      "description" : "Most Perl programmers know that to find the size of an array, the array must called in a scalar context like this:"
   },
   {
      "description" : "",
      "categories" : "cpan",
      "tags" : [
         "configuration",
         "cpan",
         "module",
         "operator"
      ],
      "title" : "How to install a specific version of a Perl module with CPAN",
      "epoch" : 1364427177,
      "url_path" : "/article/how-to-install-a-specific-version-of-a-perl-module-with-cpan",
      "authors" : [
         "david-farrell"
      ],
      "url" : "https://www.perl.com/article/how-to-install-a-specific-version-of-a-perl-module-with-cpan"
   },
   {
      "url" : "https://www.perl.com/article/how-to-cleanly-uninstall-a-perl-module",
      "epoch" : 1364342417,
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/how-to-cleanly-uninstall-a-perl-module",
      "tags" : [
         "configuration",
         "cpan",
         "module",
         "sysadmin",
         "cpanm",
         "cpanminus"
      ],
      "title" : "How to cleanly uninstall a Perl module",
      "description" : "How to write your own uninstall modules script",
      "categories" : "tooling"
   },
   {
      "url" : "https://www.perl.com/article/you-don-t-need-a-shebang-line",
      "url_path" : "/article/you-don-t-need-a-shebang-line",
      "authors" : [
         "david-farrell"
      ],
      "epoch" : 1364254795,
      "title" : "You don't need a shebang line",
      "tags" : [
         "configuration",
         "syntax"
      ],
      "description" : "",
      "categories" : "development"
   },
   {
      "description" : "Perl module features and behaviour can change from version to version and so knowing the version number of an installed Perl module can be useful in several scenarios. Below are three different command line methods for finding out the version number of an installed module that work on Bash and Windows Powershell. So fire up the terminal and get typing!",
      "categories" : "tooling",
      "tags" : [
         "configuration",
         "module",
         "sysadmin",
         "powershell",
         "bash"
      ],
      "title" : "3 quick ways to find out the version number of an installed Perl module from the terminal",
      "authors" : [
         "david-farrell"
      ],
      "url_path" : "/article/3-quick-ways-to-find-out-the-version-number-of-an-installed-perl-module-from-the-terminal",
      "epoch" : 1364146219,
      "url" : "https://www.perl.com/article/3-quick-ways-to-find-out-the-version-number-of-an-installed-perl-module-from-the-terminal"
   },
   {
      "url" : "https://www.perl.com/pub/2013/01/lexing-and-parsing-continued",
      "url_path" : "/pub/2013/01/lexing-and-parsing-continued",
      "authors" : [
         "ron-savage"
      ],
      "epoch" : 1359687054,
      "title" : "Lexing and Parsing Continued",
      "tags" : [],
      "categories" : "development",
      "description" : "Many practical programming problems require you to parse data. Ron Savage continues his demonstration of Marpa and other tools and techniques for lexing and parsing data. Put down the regexps; get it right this time."
   },
   {
      "title" : "Consuming RESTful Services with Perl",
      "tags" : [],
      "description" : "When JT Smith ported his web game The Lacuna Expanse to a board game, he used Perl to create the board game itself. Here's how he built the web service behind The Game Crafter.",
      "categories" : "web",
      "url" : "https://www.perl.com/pub/2012/12/consuming-restful-services-with-perl",
      "url_path" : "/pub/2012/12/consuming-restful-services-with-perl",
      "authors" : [
         "jt-smith"
      ],
      "epoch" : 1356962401
   },
   {
      "categories" : "games",
      "description" : "When JT Smith ported his web game The Lacuna Expanse to a board game, he used Perl to automate things. Here's how he did it.",
      "title" : "Designing Board Games With Perl",
      "tags" : [],
      "epoch" : 1354284001,
      "url_path" : "/pub/2012/11/designing-board-games-with-perl",
      "authors" : [
         "jt-smith"
      ],
      "url" : "https://www.perl.com/pub/2012/11/designing-board-games-with-perl"
   },
   {
      "url" : "https://www.perl.com/pub/2012/10/newcomer-experience-in-the-perl-community-survey",
      "epoch" : 1350309601,
      "authors" : [
         "kevin-carillo"
      ],
      "url_path" : "/pub/2012/10/newcomer-experience-in-the-perl-community-survey",
      "title" : "Newcomer Experience in the Perl Community Survey",
      "tags" : [],
      "description" : "Kevin Carillo asks for assistance surveying newcomers to the Perl community about their experiences, positive and otherwise.",
      "categories" : "community"
   },
   {
      "url" : "https://www.perl.com/pub/2012/10/an-overview-of-lexing-and-parsing",
      "epoch" : 1349100001,
      "url_path" : "/pub/2012/10/an-overview-of-lexing-and-parsing",
      "authors" : [
         "ron-savage"
      ],
      "tags" : [],
      "title" : "An Overview of Lexing and Parsing",
      "description" : "Perl programmers spend a lot of time reading, modifying, and writing data. When regular expressions aren't enough, turn to something more powerful: parsing.",
      "categories" : "development"
   },
   {
      "url_path" : "/pub/2012/08/show-off-perl-in-plat-forms-2012",
      "authors" : [
         "chromatic"
      ],
      "epoch" : 1346275312,
      "url" : "https://www.perl.com/pub/2012/08/show-off-perl-in-plat-forms-2012",
      "description" : "Thanks to Torsten Raudssus, who wrote in with this announcement. What is Plat_Forms? Plat_Forms is a contest and competition in which top-class teams of three programmers compete to implement the same requirements for a web-based system within two days, using...",
      "categories" : "community",
      "title" : "Show off Perl in Plat_Forms 2012",
      "tags" : []
   },
   {
      "tags" : [],
      "title" : "Embrace the Reluctant Perl Programmer",
      "categories" : "community",
      "description" : "editor's note: an earlier version of this article appeared at The Reluctant Perl Programmer. Per the suggestion of Ask BjÃ¸rn Hansen, this revision appears on Perl.com. Who We Are We all love Perl for different reasons. Some of us are...",
      "url" : "https://www.perl.com/pub/2012/08/embrace-the-reluctant-perl-programmer",
      "url_path" : "/pub/2012/08/embrace-the-reluctant-perl-programmer",
      "authors" : [
         "chromatic"
      ],
      "epoch" : 1346076001
   },
   {
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/06/perlunicook-further-resources",
      "epoch" : 1340978401,
      "url" : "https://www.perl.com/pub/2012/06/perlunicook-further-resources",
      "description" : "This series has shown you several features of Unicode by example, as well as several techniques for working with Unicode correctly and easily with recent releases of Perl 5. By now you know more than many programmers do about Unicode,...",
      "categories" : "unicode",
      "title" : "Perl Unicode Cookbook: Further Resources",
      "tags" : []
   },
   {
      "title" : "Perl Unicode Cookbook: Demo of Unicode Collation and Printing",
      "tags" : [],
      "description" : "â 44: PROGRAM: Demo of Unicode collation and printing The past several weeks of Unicode recipes have explained how Unicode works and shown how to use it in your programs. If you've gone through those recipes, you now understand more...",
      "categories" : "unicode",
      "url" : "https://www.perl.com/pub/2012/06/perlunicook-demo-of-unicode-collation-and-printing",
      "url_path" : "/pub/2012/06/perlunicook-demo-of-unicode-collation-and-printing",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 1340373601
   },
   {
      "url" : "https://www.perl.com/pub/2012/06/perlunicook-unicode-text-in-dbm-files-the-easy-way",
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/06/perlunicook-unicode-text-in-dbm-files-the-easy-way",
      "epoch" : 1340200801,
      "title" : "Perl Unicode Cookbook: Unicode Text in DBM Files (the easy way)",
      "tags" : [],
      "description" : "â 43: Unicode text in DBM hashes, the easy way Some Perl libraries require you to jump through hoops to handle Unicode data. Would that everything worked as easily as Perl's open pragma! For DBM files, here's how to implicitly...",
      "categories" : "unicode"
   },
   {
      "tags" : [],
      "title" : "Perl Unicode Cookbook: Unicode Text in Stubborn Libraries",
      "description" : "â 42: Unicode text in DBM hashes, the tedious way While Perl 5 has long been very careful about handling Unicode correctly inside the world of Perl itself, every time you leave the Perl internals, you cross a boundary at...",
      "categories" : "unicode",
      "url" : "https://www.perl.com/pub/2012/06/perlunicook-unicode-text-in-stubborn-libraries",
      "epoch" : 1340028001,
      "url_path" : "/pub/2012/06/perlunicook-unicode-text-in-stubborn-libraries",
      "authors" : [
         "tom-christiansen"
      ]
   },
   {
      "title" : "Perl Unicode Cookbook: Unicode Linebreaking",
      "tags" : [],
      "categories" : "unicode",
      "description" : "â 41: Unicode linebreaking If you've ever tried to fit a large amount of text into a display area too narrow for the full width of the text, you've dealt with the joy of linebreaking (or word wrapping). As you...",
      "url" : "https://www.perl.com/pub/2012/06/perlunicook-unicode-linebreaking",
      "epoch" : 1339509601,
      "url_path" : "/pub/2012/06/perlunicook-unicode-linebreaking",
      "authors" : [
         "tom-christiansen"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2012/06/perlunicook-case--and-accent-insensitive-locale-comparison",
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/06/perlunicook-case--and-accent-insensitive-locale-comparison",
      "epoch" : 1339423201,
      "tags" : [],
      "title" : "Perl Unicode Cookbook: Case- and Accent-insensitive Locale Comparisons",
      "categories" : "unicode",
      "description" : "â 40: Case- and accent-insensitive locale comparisons You now know how to compare Unicode strings while ignoring case and accent differences. This approach uses the standard Unicode collation algorithm. To perform a similar comparison while respecting a speciï¬c locale's rules,..."
   },
   {
      "categories" : "unicode",
      "description" : "â 39: Case- and accent-insensitive comparisons As you've noticed by now, many Unicode strings have multiple possible representations. Comparing two Unicode strings for equality requires far more than merely comparing their codepoints. Not only must you account for multiple representations,...",
      "tags" : [],
      "title" : "Perl Unicode Cookbook: Case- and Accent-insensitive Comparison",
      "url_path" : "/pub/2012/06/perlunicook-case--and-accent-insensitive-comparison",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 1339164001,
      "url" : "https://www.perl.com/pub/2012/06/perlunicook-case--and-accent-insensitive-comparison"
   },
   {
      "epoch" : 1339077601,
      "url_path" : "/pub/2012/06/perlunicook-make-cmp-work-on-text-instead-of-codepoints",
      "authors" : [
         "tom-christiansen"
      ],
      "url" : "https://www.perl.com/pub/2012/06/perlunicook-make-cmp-work-on-text-instead-of-codepoints",
      "categories" : "unicode",
      "description" : "â 38: Making cmp work on text instead of codepoints Even with Perl 5.12's \"unicode_strings\" feature, some of Perl's core operations do not perform as expected on Unicode strings by default. For example, how is the cmp operator to know...",
      "title" : "Perl Unicode Cookbook: Make cmp Work on Text instead of Codepoints",
      "tags" : []
   },
   {
      "description" : "â 37: Unicode locale collation As you've already seen, Unicode-aware sorting respects Unicode character properties. You can't sort by codepoint and expect to get accurate results, not even if you stick with pure ASCII. The world is a complicated place....",
      "categories" : "unicode",
      "title" : "Perl Unicode Cookbook: Unicode Locale Collation",
      "tags" : [],
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/06/perlunicook-unicode-locale-collation",
      "epoch" : 1338904801,
      "url" : "https://www.perl.com/pub/2012/06/perlunicook-unicode-locale-collation"
   },
   {
      "url" : "https://www.perl.com/pub/2012/06/perlunicook-case--and-accent-insensitive-sorting",
      "epoch" : 1338818401,
      "url_path" : "/pub/2012/06/perlunicook-case--and-accent-insensitive-sorting",
      "authors" : [
         "tom-christiansen"
      ],
      "title" : "Perl Unicode Cookbook: Case- and Accent-insensitive Sorting",
      "tags" : [],
      "description" : "â 36: Case- and accent-insensitive Unicode sort The Unicode Collation Algorithm defines several levels of collation strength by which you can specify certain character properties as relevant or irrelevant to the collation ordering. In simple terms, you can use collation...",
      "categories" : "unicode"
   },
   {
      "url" : "https://www.perl.com/pub/2012/06/perlunicook-unicode-collation",
      "url_path" : "/pub/2012/06/perlunicook-unicode-collation",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 1338559201,
      "title" : "Perl Unicode Cookbook: Unicode Collation",
      "tags" : [],
      "description" : "â 35: Unicode collation Sorting&mdash;even pure ASCII&mdash;seems easy, at least if you know the alphabet song. Yet even something this simple gets complicated if you sort merely by codepoint. You get numbers coming in the midst of letters. You get...",
      "categories" : "unicode"
   },
   {
      "description" : "â 34: Unicode column-width for printing Perl's printf, sprintf, and format think all codepoints take up 1 print column, but many codepoints take 0 or 2. If you use any of these builtins to align text, you may find that...",
      "categories" : "unicode",
      "tags" : [],
      "title" : "Perl Unicode Cookbook: Unicode Column Width for Printing",
      "epoch" : 1338472801,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/05/perlunicook-unicode-column-width-for-printing",
      "url" : "https://www.perl.com/pub/2012/05/perlunicook-unicode-column-width-for-printing"
   },
   {
      "url" : "https://www.perl.com/pub/2012/05/perlunicook-string-length-in-graphemes",
      "epoch" : 1338386401,
      "url_path" : "/pub/2012/05/perlunicook-string-length-in-graphemes",
      "authors" : [
         "tom-christiansen"
      ],
      "title" : "Perl Unicode Cookbook: String Length in Graphemes",
      "tags" : [],
      "categories" : "unicode",
      "description" : "â 33: String length in graphemes If you learn nothing else about Unicode, remember this: characters are not bytes are not graphemes are not codepoints. A user-visible symbol (a grapheme) may be composed of multiple codepoints. Multiple combinations of codepoints..."
   },
   {
      "url" : "https://www.perl.com/pub/2012/05/perlunicook-reverse-string-by-grapheme",
      "epoch" : 1338300001,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/05/perlunicook-reverse-string-by-grapheme",
      "tags" : [],
      "title" : "Perl Unicode Cookbook: Reverse String by Grapheme",
      "categories" : "unicode",
      "description" : "â 32: Reverse string by grapheme Because bytes and characters are not isomorphic in Unicode&mdash;and what you may see as a user-visible character (a grapheme) is not necessarily a single codepoint in a Unicode string&mdash;every string operation must be aware..."
   },
   {
      "url" : "https://www.perl.com/pub/2012/05/perlunicook-extract-by-grapheme-instead-of-codepoint-substr",
      "url_path" : "/pub/2012/05/perlunicook-extract-by-grapheme-instead-of-codepoint-substr",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 1337954401,
      "tags" : [],
      "title" : "Perl Unicode Cookbook: Extract by Grapheme Instead of Codepoint (substr)",
      "categories" : "unicode",
      "description" : "â 31: Extract by grapheme instead of by codepoint (substr) The Unicode Standard Annex #29 discusses the boundaries between grapheme clusters&mdash;what users might perceive as \"characters\". The CPAN module Unicode::GCString allows you to treat a Unicode string as a sequence..."
   },
   {
      "categories" : "unicode",
      "description" : "â 30: Extract by grapheme instead of by codepoint (regex) Remember that Unicode defines a grapheme as \"what a user thinks of as a character\". A codepoint is an integer value in the Unicode codespace. While ASCII conflates the two,...",
      "title" : "Perl Unicode Cookbook: Extract by Grapheme Instead of Codepoint (regex)",
      "tags" : [],
      "epoch" : 1337868001,
      "url_path" : "/pub/2012/05/perlunicookbook-extract-by-grapheme-instead-of-codepoint-regex",
      "authors" : [
         "tom-christiansen"
      ],
      "url" : "https://www.perl.com/pub/2012/05/perlunicookbook-extract-by-grapheme-instead-of-codepoint-regex"
   },
   {
      "url" : "https://www.perl.com/pub/2012/05/perlunicook-match-unicode-grapheme-cluster-in-regex",
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/05/perlunicook-match-unicode-grapheme-cluster-in-regex",
      "epoch" : 1337695201,
      "title" : "Perl Unicode Cookbook: Match Unicode Grapheme Cluster in Regex",
      "tags" : [],
      "categories" : "unicode",
      "description" : "â 29: Match Unicode grapheme cluster in regex In the days of ASCII, we spoke of characters and bytes. We saw few differences between them. In the Unicode world, characters are far more than seven bits of data. Far better..."
   },
   {
      "title" : "Perl Unicode Cookbook: Convert non-ASCII Unicode Numerics",
      "tags" : [],
      "categories" : "unicode",
      "description" : "â 28: Convert non-ASCII Unicode numerics Unicode digits encompass far more than the ASCII characters 0 - 9. Unless you've used /a or /aa, \\d matches more than ASCII digits only. That's good! Unfortunately, Perl's implicit string-to-number conversion does not...",
      "url" : "https://www.perl.com/pub/2012/05/perlunicookbook-convert-non-ascii-unicode-numerics",
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/05/perlunicookbook-convert-non-ascii-unicode-numerics",
      "epoch" : 1337608801
   },
   {
      "description" : "â 27: Unicode normalization Prescription one reminded you to always decompose and recompose Unicode data at the boundaries of your application. Unicode::Normalize can do much more for you. It supports multiple Unicode Normalization Forms. Normalization, of course, takes Unicode data...",
      "categories" : "unicode",
      "title" : "Perl Unicode Cookbook: Unicode Normalization",
      "tags" : [],
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/05/perlunicookbook-unicode-normalization",
      "epoch" : 1337349601,
      "url" : "https://www.perl.com/pub/2012/05/perlunicookbook-unicode-normalization"
   },
   {
      "url" : "https://www.perl.com/pub/2012/05/perlunicookbook-custom-character-properties",
      "url_path" : "/pub/2012/05/perlunicookbook-custom-character-properties",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 1337263201,
      "tags" : [],
      "title" : "Perl Unicode Cookbook: Custom Character Properties",
      "description" : "â 26: Custom character properties Match Unicode Properties in Regex explained that ever Unicode character has one or more properties, specified by the Unicode consortium. You may extend these rule to define your own properties such that Perl can use...",
      "categories" : "unicode"
   },
   {
      "title" : "Perl Unicode Cookbook: Match Unicode Properties in Regex",
      "tags" : [],
      "categories" : "unicode",
      "description" : "â 25: Match Unicode properties in regex with \\p, \\P Every Unicode codepoint has one or more properties, indicating the rules which apply to that codepoint. Perl's regex engine is aware of these properties; use the \\p{} metacharacter sequence to...",
      "url" : "https://www.perl.com/pub/2012/05/perlunicook-match-unicode-properties-in-regex",
      "epoch" : 1337176801,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/05/perlunicook-match-unicode-properties-in-regex"
   },
   {
      "url" : "https://www.perl.com/pub/2012/05/perlunicook-disable-unicode-awareness-in-builtin-character-classes",
      "epoch" : 1337004001,
      "url_path" : "/pub/2012/05/perlunicook-disable-unicode-awareness-in-builtin-character-classes",
      "authors" : [
         "tom-christiansen"
      ],
      "tags" : [],
      "title" : "Perl Unicode Cookbook: Disable Unicode-awareness in Builtin Character Classes",
      "categories" : "unicode",
      "description" : "â 24: Disabling Unicode-awareness in builtin charclasses Many regex tutorials gloss over the fact that builtin character classes include far more than ASCII characters. In particular, classes such as \"word character\" (\\w), \"word boundary\" (\\b), \"whitespace\" (\\s), and \"digit\" (\\d)..."
   },
   {
      "epoch" : 1336744801,
      "url_path" : "/pub/2012/05/perlunicook-get-character-categories",
      "authors" : [
         "tom-christiansen"
      ],
      "url" : "https://www.perl.com/pub/2012/05/perlunicook-get-character-categories",
      "categories" : "unicode",
      "description" : "â 23: Get character category Unicode is a set of characters and a list of rules and properties applied to those characters. The Unicode Character Database collects those properties. The core module Unicode::UCD provides access to these properties. These general...",
      "tags" : [],
      "title" : "Perl Unicode Cookbook: Get Character Categories"
   },
   {
      "title" : "Perl Unicode Cookbook: Match Unicode Linebreak Sequence",
      "tags" : [],
      "description" : "â 22: Match Unicode linebreak sequence in regex Unicode defines several characters as providing vertical whitespace, like the carriage return or newline characters. Unicode also gathers several characters under the banner of a linebreak sequence. A Unicode linebreak matches the...",
      "categories" : "unicode",
      "url" : "https://www.perl.com/pub/2012/05/perlunicook-match-unicode-linebreak-sequence",
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/05/perlunicook-match-unicode-linebreak-sequence",
      "epoch" : 1336658401
   },
   {
      "categories" : "unicode",
      "description" : "â 21: Unicode case-insensitive comparisons Unicode is more than an expanded character set. Unicode is a set of rules about how characters behave and a set of properties about each character. Comparing strings for equivalence often requires normalizing them to...",
      "title" : "Perl Unicode Cookbook: Case-insensitive Comparisons",
      "tags" : [],
      "epoch" : 1336572001,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/05/perlunicook-case-insensitive-comparisons",
      "url" : "https://www.perl.com/pub/2012/05/perlunicook-case-insensitive-comparisons"
   },
   {
      "categories" : "unicode",
      "description" : "â 20: Unicode casing Unicode casing is very diï¬erent from ASCII casing. Some of the complexity of Unicode comes about because Unicode characters may change dramatically when changing from upper to lower case and back. For example, the Greek language...",
      "title" : "Perl Unicode Cookbook: Unicode Casing",
      "tags" : [],
      "epoch" : 1336485601,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/05/perl-unicook-unicode-casing",
      "url" : "https://www.perl.com/pub/2012/05/perl-unicook-unicode-casing"
   },
   {
      "epoch" : 1336140001,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/05/perlunicook-specify-a-files-encoding",
      "url" : "https://www.perl.com/pub/2012/05/perlunicook-specify-a-files-encoding",
      "description" : "â 19: Open ï¬le with speciï¬c encoding While setting the default Unicode encoding for IO is sensible, sometimes the default encoding is not correct. In this case, specify the encoding for a filehandle manually in the mode option to open...",
      "categories" : "unicode",
      "title" : "Perl Unicode Cookbook: Specify a File's Encoding",
      "tags" : []
   },
   {
      "url_path" : "/pub/2012/05/perlunicook-make-all-io-default-to-utf-8",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 1336053601,
      "url" : "https://www.perl.com/pub/2012/05/perlunicook-make-all-io-default-to-utf-8",
      "description" : "â 18: Make all I/O and args default to utf8 The core rule of Unicode handling in Perl is \"always encode and decode at the edges of your program\". If you've configured everything such that all incoming and outgoing data...",
      "categories" : "unicode",
      "title" : "Perl Unicode Cookbook: Make All I/O Default to UTF-8",
      "tags" : []
   },
   {
      "epoch" : 1335880801,
      "url_path" : "/pub/2012/05/perlunicook-make-file-io-default-to-utf-8",
      "authors" : [
         "tom-christiansen"
      ],
      "url" : "https://www.perl.com/pub/2012/05/perlunicook-make-file-io-default-to-utf-8",
      "description" : "â 17: Make ï¬le I/O default to utf8 If you've ever had the misfortune of seeing the Unicode warning \"wide character in print\", you may have realized that something forgot to set the appropriate Unicode-capable encoding on a filehandle somewhere...",
      "categories" : "unicode",
      "title" : "Perl Unicode Cookbook: Make File I/O Default to UTF-8",
      "tags" : []
   },
   {
      "tags" : [],
      "title" : "Perl Unicode Cookbook: Decode Standard Filehandles as Locale Encoding",
      "categories" : "unicode",
      "description" : "â 16: Declare STD{IN,OUT,ERR} to be in locale encoding Always convert to and from your desired encoding at the edges of your programs. This includes the standard filehandles STDIN, STDOUT, and STDERR. While it may be most common for modern...",
      "url" : "https://www.perl.com/pub/2012/04/perlunicook-decode-standard-filehandles-as-locale-encoding",
      "epoch" : 1335794401,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/04/perlunicook-decode-standard-filehandles-as-locale-encoding"
   },
   {
      "url" : "https://www.perl.com/pub/2012/04/perlunicook-decode-standard-filehandles-as-utf-8",
      "epoch" : 1335535201,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/04/perlunicook-decode-standard-filehandles-as-utf-8",
      "title" : "Perl Unicode Cookbook: Decode Standard Filehandles as UTF-8",
      "tags" : [],
      "description" : "â 15: Declare STD{IN,OUT,ERR} to be UTF-8 Always convert to and from your desired encoding at the edges of your programs. This includes the standard filehandles STDIN, STDOUT, and STDERR. As documented in perldoc perlrun, the PERL_UNICODE environment variable or...",
      "categories" : "unicode"
   },
   {
      "description" : "â 14: Decode program arguments as locale encoding While it may be most common in modern operating systems for your command-line arguments to be encoded as UTF-8, @ARGV may use other encodings. If you have configured your system with a...",
      "categories" : "unicode",
      "title" : "Perl Unicode Cookbook: Decode @ARGV as Local Encoding",
      "tags" : [],
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/04/perlunicookbook-decode-argv-as-local-encoding",
      "epoch" : 1335448801,
      "url" : "https://www.perl.com/pub/2012/04/perlunicookbook-decode-argv-as-local-encoding"
   },
   {
      "description" : "â 13: Decode program arguments as utf8 While the standard Perl Unicode preamble makes Perl's filehandles use UTF-8 encoding by default, filehandles aren't the only sources and sinks of data. The command-line arguments to your programs, available through @ARGV, may...",
      "categories" : "unicode",
      "title" : "Perl Unicode Cookbook: Decode @ARGV as UTF-8",
      "tags" : [],
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/04/perlunicookbook-decode-argv-as-utf8",
      "epoch" : 1335276001,
      "url" : "https://www.perl.com/pub/2012/04/perlunicookbook-decode-argv-as-utf8"
   },
   {
      "description" : "â 12: Explicit encode/decode While the standard Perl Unicode preamble makes Perl's filehandles use UTF-8 encoding by default, filehandles aren't the only sources and sinks of data. On rare occasions, such as a database read, you may be given encoded...",
      "categories" : "unicode",
      "title" : "Perl Unicode Cookbook: Explicit encode/decode",
      "tags" : [],
      "url_path" : "/pub/2012/04/perlunicook-explicit-encode-decode",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 1335189601,
      "url" : "https://www.perl.com/pub/2012/04/perlunicook-explicit-encode-decode"
   },
   {
      "title" : "Perl Unicode Cookbook: Names of CJK Codepoints",
      "tags" : [],
      "description" : "â 11: Names of CJK codepoints CJK refers to Chinese, Japanese, and Korean. In the context of Unicode, it usually refers to the Han ideographs used in the modern Chinese and Japanese writing systems. As you can expect, pictoral languages...",
      "categories" : "unicode",
      "url" : "https://www.perl.com/pub/2012/04/perlunicook-names-of-cjk-codepoints",
      "url_path" : "/pub/2012/04/perlunicook-names-of-cjk-codepoints",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 1334930401
   },
   {
      "epoch" : 1334844001,
      "url_path" : "/pub/2012/04/perlunicook-custom-named-characters",
      "authors" : [
         "tom-christiansen"
      ],
      "url" : "https://www.perl.com/pub/2012/04/perlunicook-custom-named-characters",
      "categories" : "unicode",
      "description" : "â 10: Custom named characters As several other recipes demonstrate, the charnames pragma offers considerable power to use and manipulate Unicode characters by their names. Its :alias option allows you to give your own lexically scoped nicknames to existing characters,...",
      "tags" : [],
      "title" : "Perl Unicode Cookbook: Custom Named Characters"
   },
   {
      "tags" : [],
      "title" : "Perl Unicode Cookbook: Unicode Named Character Sequences",
      "categories" : "unicode",
      "description" : "â 9: Unicode named sequences Unicode includes the feature of named character sequences, which combine multiple Unicode characters behind a single name. The charnames pragma allows the use of these named sequences in literals, just as it allows the use...",
      "url" : "https://www.perl.com/pub/2012/04/perlunicook-unicode-named-character-sequences",
      "epoch" : 1334671201,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/04/perlunicook-unicode-named-character-sequences"
   },
   {
      "url" : "https://www.perl.com/pub/2012/04/perlunicook-unicode-named-characters",
      "url_path" : "/pub/2012/04/perlunicook-unicode-named-characters",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 1334584801,
      "tags" : [],
      "title" : "Perl Unicode Cookbook: Unicode Named Characters",
      "categories" : "unicode",
      "description" : "â 8: Unicode named characters Use the \\N{charname} notation to get the character by that name for use in interpolated literals (double-quoted strings and regexes). In v5.16, there is an implicit use charnames qw(:full :short); But prior to v5.16, you..."
   },
   {
      "description" : "â 7: Get character number by name Unicode allows you to refer to characters by number or by name. Computers don't care, but humans do. When you have a character name, you can translate it to its number with the...",
      "categories" : "unicode",
      "tags" : [],
      "title" : "Perl Unicode Cookbook: Get Character Number by Name",
      "epoch" : 1334325601,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/04/perlunicook-character-numbers-by-name",
      "url" : "https://www.perl.com/pub/2012/04/perlunicook-character-numbers-by-name"
   },
   {
      "url" : "https://www.perl.com/pub/2012/04/perlunicook-character-names-by-number",
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/04/perlunicook-character-names-by-number",
      "epoch" : 1334239201,
      "tags" : [],
      "title" : "Perl Unicode Cookbook: Get Character Names by Number",
      "description" : "â 6: Get character name by number Unicode allows you to refer to characters by number or by name. Computers don't care, but humans do. When you have a character number, you can translate it to its name with the...",
      "categories" : "unicode"
   },
   {
      "url" : "https://www.perl.com/pub/2012/04/perlunicook-unicode-literals-by-number",
      "url_path" : "/pub/2012/04/perlunicook-unicode-literals-by-number",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 1334066401,
      "title" : "Perl Unicode Cookbook: Unicode Literals by Number",
      "tags" : [],
      "categories" : "unicode",
      "description" : "â 5: Unicode literals by character number In an interpolated literal, whether a double-quoted string or a regex, you may specify a character by its number using the \\x{HHHHHH} escape. String: &quot;\\x{3a3}&quot; Regex: /\\x{3a3}/ String: &quot;\\x{1d45b}&quot; Regex: /\\x{1d45b}/ # even..."
   },
   {
      "title" : "Perl Unicode Cookbook: Characters and Their Numbers",
      "tags" : [],
      "description" : "â 4: Characters and their numbers Do you need to translate a codepoint to a character or a character to its codepoint? The ord and chr functions work transparently on all codepoints, not just on ASCII alone&mdash;nor in fact, not...",
      "categories" : "unicode",
      "url" : "https://www.perl.com/pub/2012/04/perlunicook-chars-and-their-nums",
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/04/perlunicook-chars-and-their-nums",
      "epoch" : 1333980001
   },
   {
      "title" : "Perl Unicode Cookbook: Enable UTF-8 Literals",
      "tags" : [],
      "categories" : "unicode",
      "description" : "â 3: Declare source in UTF-8 for identiï¬ers and literals Without the all-critical use utf8 declaration, putting UTFâ8 in your literals and identiï¬ers won't work right. If you used the standard Perl Unicode preamble, this already happened. If you did,...",
      "url" : "https://www.perl.com/pub/2012/04/perlunicook-enable-utf-8-literals",
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/2012/04/perlunicook-enable-utf-8-literals",
      "epoch" : 1333720801
   },
   {
      "url_path" : "/pub/2012/04/perl-unicook-fine-tuning-warnings",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 1333634401,
      "url" : "https://www.perl.com/pub/2012/04/perl-unicook-fine-tuning-warnings",
      "categories" : "unicode",
      "description" : "â 2: Fine-tuning Unicode warnings It's easy to get Unicode wrong, especially when handling user input and dealing with multiple encodings. Perl is happy to help you detect unexpected conditions of your data. Perl is also happy to let you...",
      "tags" : [],
      "title" : "Perl Unicode Cookbook: Fine-Tuning Unicode Warnings"
   },
   {
      "title" : "Perl Unicode Cookbook: Always Decompose and Recompose",
      "tags" : [],
      "description" : "To handle Unicode effectively, always decompose on the way in, then\nrecompose on the way out.",
      "categories" : "unicode",
      "url" : "https://www.perl.com/pub/2012/04/perl-unicode-cookbook-always-decompose-and-recompose",
      "epoch" : 1333461601,
      "url_path" : "/pub/2012/04/perl-unicode-cookbook-always-decompose-and-recompose",
      "authors" : [
         "tom-christiansen"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2012/04/perlunicook-standard-preamble",
      "url_path" : "/pub/2012/04/perlunicook-standard-preamble",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 1333375201,
      "tags" : [],
      "title" : "Perl Unicode Cookbook: The Standard Preamble",
      "description" : "Tom Christiansen demonstrates the bare minimum feature set necessary to work with Unicode effectively in Perl 5.",
      "categories" : "unicode"
   },
   {
      "tags" : [
         "web-development"
      ],
      "title" : "Perl in Plat_Forms 2012 Web Development Contest",
      "categories" : "community",
      "description" : "Thanks to Lars DÉªá´á´á´á´á´¡ for coordinating entries into the Plat_Forms 2012 web development contest. This annual contest pits some of the best developers of frameworks and languages against each other to solve real problems. Perl developers have participated for several...",
      "url" : "https://www.perl.com/pub/2012/02/perl-in-plat-forms-2012-web-development-contest",
      "epoch" : 1328232815,
      "url_path" : "/pub/2012/02/perl-in-plat-forms-2012-web-development-contest",
      "authors" : [
         "chromatic"
      ]
   },
   {
      "tags" : [],
      "title" : "Building Telephony Applications with Perl and TwiML",
      "description" : "Scott Wiersdorf shows how to write a little bit of Perl to build an automated voice mail menu with Twilio's API.",
      "categories" : "networking",
      "url" : "https://www.perl.com/pub/2011/12/building-telephony-applications-with-perl-and-twiml",
      "url_path" : "/pub/2011/12/building-telephony-applications-with-perl-and-twiml",
      "authors" : [
         "scott-wiersdorf"
      ],
      "epoch" : 1323698401
   },
   {
      "url" : "https://www.perl.com/pub/2011/09/automating-telephony-with-perl-and-twilio",
      "url_path" : "/pub/2011/09/automating-telephony-with-perl-and-twilio",
      "authors" : [
         "scott-wiersdorf"
      ],
      "epoch" : 1316613601,
      "title" : "Automating Telephony with Perl and Twilio",
      "tags" : [
         "apis",
         "telephony"
      ],
      "description" : "Perl can make your phone ring. Scott Wiersdorf demonstrates how to use Twilio's API to make and receive phone calls and to automate SMS, all from Perl.",
      "categories" : "networking"
   },
   {
      "url" : "https://www.perl.com/pub/2011/08/whats-wrong-with-sort-and-how-to-fix-it",
      "epoch" : 1314799201,
      "url_path" : "/pub/2011/08/whats-wrong-with-sort-and-how-to-fix-it",
      "authors" : [
         "tom-christiansen"
      ],
      "title" : "What's Wrong with sort and How to Fix It",
      "tags" : [
         "sorting",
         "unicode"
      ],
      "description" : "In this excerpt from Programming Perl 4e, Tom Christiansen demonstrates that, in a Unicode world, sorting correctly can be trickier than you think.",
      "categories" : "unicode"
   },
   {
      "tags" : [],
      "title" : "Using CPAN on Win32 ActivePerl",
      "categories" : "windows",
      "description" : "Christian Walde demonstrates that even ActivePerl users on Windows can use CPAN-out of the box.",
      "url" : "https://www.perl.com/pub/2011/08/using-cpan-on-win32-activeperl",
      "authors" : [
         "chromatic"
      ],
      "url_path" : "/pub/2011/08/using-cpan-on-win32-activeperl",
      "epoch" : 1312380001
   },
   {
      "tags" : [],
      "title" : "New Features of Perl 5.14: unicode_strings",
      "description" : "Perl 5.14 provides a new feature called unicode_strings to improve Unicode string handling.",
      "categories" : "development",
      "url" : "https://www.perl.com/pub/2011/06/new-features-of-perl-514-unicode-strings",
      "authors" : [
         "chromatic"
      ],
      "url_path" : "/pub/2011/06/new-features-of-perl-514-unicode-strings",
      "epoch" : 1307560359
   },
   {
      "categories" : "development",
      "description" : "Perl 5.14 loads IO::File on demand for autovivified filehandles.",
      "title" : "New Features of Perl 5.14: IO::File on Demand",
      "tags" : [],
      "epoch" : 1306273515,
      "url_path" : "/pub/2011/05/new-features-of-perl-514-iofile-on-demand",
      "authors" : [
         "chromatic"
      ],
      "url" : "https://www.perl.com/pub/2011/05/new-features-of-perl-514-iofile-on-demand"
   },
   {
      "tags" : [
         "language",
         "perl-5",
         "perl-5-14",
         "syntax"
      ],
      "title" : "New Features of Perl 5.14: Non-destructive Substitution",
      "categories" : "development",
      "description" : "Perl 5.14 adds non-destructive substitution.",
      "url" : "https://www.perl.com/pub/2011/05/new-features-of-perl-514-non-destructive-substitution",
      "epoch" : 1305760099,
      "url_path" : "/pub/2011/05/new-features-of-perl-514-non-destructive-substitution",
      "authors" : [
         "chromatic"
      ]
   },
   {
      "epoch" : 1305574285,
      "url_path" : "/pub/2011/05/new-features-of-perl-514-package-block",
      "authors" : [
         "chromatic"
      ],
      "url" : "https://www.perl.com/pub/2011/05/new-features-of-perl-514-package-block",
      "description" : "Perl 5.14 adds a package BLOCK declaration.",
      "categories" : "development",
      "tags" : [
         "language",
         "perl-5",
         "perl-5-14",
         "syntax"
      ],
      "title" : "New Features of Perl 5.14: package BLOCK"
   },
   {
      "authors" : [
         "jt-smith"
      ],
      "url_path" : "/pub/2011/04/writing-on-walls-with-facebookgraph",
      "epoch" : 1301968993,
      "url" : "https://www.perl.com/pub/2011/04/writing-on-walls-with-facebookgraph",
      "categories" : "web",
      "description" : "JT Smith shows how to write Facebook applications with offline permissions to post to user walls with Perl and Facebook::Graph.",
      "tags" : [
         "cpan",
         "dancer",
         "facebook",
         "facebook-graph",
         "web-development"
      ],
      "title" : "Writing on Walls with Facebook::Graph"
   },
   {
      "url" : "https://www.perl.com/pub/2011/03/facebook-authentication-with-perl-and-facebookgraph",
      "url_path" : "/pub/2011/03/facebook-authentication-with-perl-and-facebookgraph",
      "authors" : [
         "jt-smith"
      ],
      "epoch" : 1300213071,
      "tags" : [
         "cpan",
         "dancer",
         "facebook",
         "facebook-graph",
         "web-development"
      ],
      "title" : "Facebook Authentication with Perl and Facebook::Graph",
      "categories" : "web",
      "description" : "In the first of a series on writing Facebook applications with Perl, JT Smith demonstrates how to register an application and authenticate users with Facebook::Graph."
   },
   {
      "url_path" : "/pub/2011/02/perl-qa-hackathon-2011-call-to-attention",
      "authors" : [
         "chromatic"
      ],
      "epoch" : 1296675167,
      "url" : "https://www.perl.com/pub/2011/02/perl-qa-hackathon-2011-call-to-attention",
      "categories" : "community",
      "description" : "Lars DÉªá´á´á´á´á´¡ has sent out a call for attention for the 2011 Perl QA Hackathon: The Perl QA hackathon 2011 is taking place from Saturday, April 16th to Monday, April 18th 2011 in Amsterdam, The Netherlands. Attendance is gratis. We...",
      "tags" : [],
      "title" : "Perl QA Hackathon 2011: Call to Attention"
   },
   {
      "epoch" : 1295877601,
      "url_path" : "/pub/2011/01/visualizing-music-with-sdl-and-perl",
      "authors" : [
         "kartik-thakore"
      ],
      "url" : "https://www.perl.com/pub/2011/01/visualizing-music-with-sdl-and-perl",
      "categories" : "graphics",
      "description" : "In this edited excerpt from the SDL Perl manual, lead developer Kartik\nThakore walks through a non-game application of SDL and Perl, building a\nmusic player with visualizations in just a few lines of code.",
      "tags" : [
         "graphics",
         "music",
         "perl",
         "perl-5",
         "sdl"
      ],
      "title" : "Visualizing Music with SDL and Perl"
   },
   {
      "url" : "https://www.perl.com/pub/2010/11/the-philosophy-of-webnano",
      "epoch" : 1290569501,
      "authors" : [
         "zbigniew-lukasiak"
      ],
      "url_path" : "/pub/2010/11/the-philosophy-of-webnano",
      "title" : "The Philosophy of WebNano",
      "tags" : [],
      "description" : "Why do so many web applications have the same components, yet so few actually share those components as libraries?  Perhaps the philosophy of building web frameworks is the culprit.  Zbigniew Lukasiak's WebNano is an attempt to solve that problem.",
      "categories" : "web"
   },
   {
      "url" : "https://www.perl.com/pub/2010/10/perl-in-plat-forms-2011",
      "epoch" : 1288391151,
      "authors" : [
         "chromatic"
      ],
      "url_path" : "/pub/2010/10/perl-in-plat-forms-2011",
      "title" : "Perl in Plat_Forms 2011",
      "tags" : [],
      "description" : "Thanks to Lars DÉªá´á´á´á´á´¡ for sending along this notice about the Plat_Forms 2011 web development contest. Unlike other comparisons of programming languages (such as the great unmaintainable speed-tweakers micromeasurement contest and This Is Odiously Bad Empiricism), Plat_Forms features real teams...",
      "categories" : "community"
   },
   {
      "url" : "https://www.perl.com/pub/2010/10/colonizing-the-lacuna-expanse-with-perl",
      "authors" : [
         "chromatic"
      ],
      "url_path" : "/pub/2010/10/colonizing-the-lacuna-expanse-with-perl",
      "epoch" : 1287772960,
      "title" : "Colonizing the Lacuna Expanse with Perl",
      "tags" : [
         "business",
         "cpan",
         "games",
         "jt-smith",
         "perl",
         "plack",
         "web-development"
      ],
      "categories" : "games",
      "description" : "Perl productivity has suffered this month with JT Smith's announcement of <a href=\"http://lacunaexpanse.com/\">The Lacuna Expanse</a>, a web-based space empire strategy game.  As with most of Smith's projects, TLE uses Perl extensively. Perl.com recently conducted an email interview to explore the world behind the game world."
   },
   {
      "description" : "<a href=\"http://perlgeek.de/\">Moritz Lenz</a> is a contributor to Perl 6 and <a href=\"http://www.rakudo.org/\">Rakudo Perl 6</a>.  You may know him as the writer of the popular <a href=\"http://perlgeek.de/blog-en/perl-6/\">Perlgeek.de Perl 6 blog</a> or a chief wrangler of the Perl 6 test suite.  Here are his own words on Perl 6 and Rakudo.",
      "categories" : "perl-6",
      "title" : "People of Perl 6: Moritz Lenz",
      "tags" : [],
      "url_path" : "/pub/2010/09/people-of-perl-6-moritz-lenz",
      "authors" : [
         "chromatic"
      ],
      "epoch" : 1284426275,
      "url" : "https://www.perl.com/pub/2010/09/people-of-perl-6-moritz-lenz"
   },
   {
      "authors" : [
         "chromatic"
      ],
      "url_path" : "/pub/2010/08/people-of-perl-6-carl-masak",
      "epoch" : 1283263201,
      "url" : "https://www.perl.com/pub/2010/08/people-of-perl-6-carl-masak",
      "description" : "Carl MÃ¤sak is a developer of <a href=\"http://www.rakudo.org/\">Rakudo Perl\n6</a> and arguably the most dedicated bug wrangler.  He's contributed to\nmore bug reports than anyone else.  If you find that Rakudo does not do as you\nexpect, you'll likely talk to him on #perl6 for help triaging and categorizing\nyour bug.\n\nIn his own words, here's how he's helped make Perl 6 real.",
      "categories" : "perl-6",
      "tags" : [
         "interview",
         "perl",
         "perl-6",
         "rakudo"
      ],
      "title" : "People of Perl 6: Carl MÃ¤sak"
   },
   {
      "authors" : [
         "chromatic"
      ],
      "url_path" : "/pub/2010/08/rethinking-perl-web",
      "epoch" : 1282329056,
      "url" : "https://www.perl.com/pub/2010/08/rethinking-perl-web",
      "description" : "Modern Perl developments provide better capabilities for abstraction and reusable code.  Rethinking a project more than a decade old with modern techniques demonstrates how much Perl has improved-and how far it could go.",
      "categories" : "web",
      "tags" : [
         "cpan",
         "design",
         "web"
      ],
      "title" : "Rethinking Everything: Perl and the Web in 201x"
   },
   {
      "tags" : [
         "interview",
         "perl-6"
      ],
      "title" : "People of Perl 6: Jonathan Worthington",
      "categories" : "perl-6",
      "description" : "Jonathan Worthington is one of the lead developers of Rakudo Perl 6.  In this interview he discusses the project, its future, and what to expect from this exciting new language.",
      "url" : "https://www.perl.com/pub/2010/08/people-of-perl-6-jonathan-worthington",
      "authors" : [
         "chromatic"
      ],
      "url_path" : "/pub/2010/08/people-of-perl-6-jonathan-worthington",
      "epoch" : 1281569367
   },
   {
      "tags" : [
         "announcements",
         "perl",
         "perl-5",
         "perl-6",
         "rakudo"
      ],
      "title" : "Welcome Rakudo Star",
      "description" : "The first Rakudo Star release is out, making Perl 6 available to a wider range of users.  Welcome to the new era of Perl.",
      "categories" : "perl-6",
      "url" : "https://www.perl.com/pub/2010/07/welcome-rakudo-star",
      "epoch" : 1280412001,
      "authors" : [
         "chromatic"
      ],
      "url_path" : "/pub/2010/07/welcome-rakudo-star"
   },
   {
      "categories" : "perldotcom",
      "description" : "Welcome to the new Perl.com!  It's a great time to program Perl, and our\nintent is that Perl.com can show off our language, libraries, and\ncommunity.",
      "tags" : [
         "perl",
         "site",
         "tpf"
      ],
      "title" : "Relaunching Perl.com",
      "epoch" : 1279767989,
      "authors" : [
         "chromatic"
      ],
      "url_path" : "/pub/2010/07/relaunching-perlcom",
      "url" : "https://www.perl.com/pub/2010/07/relaunching-perlcom"
   },
   {
      "description" : "Perl 5.12 has just come out. A rejuvenated development process helps ensure a bright future for Perl as it enters its third decade of making easy things easy and hard things possible. Here's what you can expect when you upgrade...",
      "categories" : "community",
      "title" : "Inside Perl 5.12",
      "tags" : [
         "perl-5",
         "perl-5-12",
         "perl-programming"
      ],
      "url_path" : "/pub/2010/04/inside-perl-512",
      "authors" : [
         "chromatic"
      ],
      "epoch" : 1271772001,
      "url" : "https://www.perl.com/pub/2010/04/inside-perl-512"
   },
   {
      "categories" : "web",
      "description" : "While Perl has a few heavy hitters in the web framework world (Catalyst, Jifty, CGI::App), sometimes they can seem like overkill. When writing a light web service or a high-end but not-as-complex website, you might want something smaller and simpler....",
      "title" : "A Website in a Minute Using Dancer, the Effortless Web Framework",
      "tags" : [
         "cpan",
         "dancer",
         "perl",
         "perl-5",
         "perl-programming",
         "web-development"
      ],
      "epoch" : 1270562401,
      "url_path" : "/pub/2010/04/a-website-in-a-minute-using-dancer-the-effortless-web-framework",
      "authors" : [
         "perldotcom"
      ],
      "url" : "https://www.perl.com/pub/2010/04/a-website-in-a-minute-using-dancer-the-effortless-web-framework"
   },
   {
      "url" : "https://www.perl.com/pub/2010/03/testing-perl-5120-rc-1-with-appperlbrew",
      "epoch" : 1269987726,
      "url_path" : "/pub/2010/03/testing-perl-5120-rc-1-with-appperlbrew",
      "authors" : [
         "chromatic"
      ],
      "title" : "Testing Perl 5.12.0 RC 1 with App::perlbrew",
      "tags" : [
         "cpan",
         "installation",
         "perl-5",
         "perl-5-12",
         "perlbrew",
         "testing"
      ],
      "description" : "I'm working on a project with Curtis \"Ovid\" Poe and Adrian Howard. We use Perl 5.10.1, but because we control which version of Perl 5 we use, there's no reason not to test with Perl 5.12.0 - and if we...",
      "categories" : "tooling"
   },
   {
      "tags" : [
         "perl",
         "perl-5",
         "perl-programming",
         "perl5i"
      ],
      "title" : "perl5i Makes More Simple Things Simple",
      "description" : "Suppose that you want to load a module dynamically (you have the name in a scalar), then alias a function from that module to a new name in another class. In other words, you want a renaming import. How do...",
      "categories" : "development",
      "url" : "https://www.perl.com/pub/2010/03/perl5i-makes-more-simple-things-simple",
      "epoch" : 1269352801,
      "authors" : [
         "michael-schwern"
      ],
      "url_path" : "/pub/2010/03/perl5i-makes-more-simple-things-simple"
   },
   {
      "description" : "Any language&mdash;programming or natural&mdash;develops idioms, or common patterns of expression. The earth revolves, but we speak of the sun rising or setting. We talk of clever hacks and nasty hacks and slinging code. We ping each other on IRC to...",
      "categories" : "development",
      "tags" : [
         "idioms",
         "objects",
         "parameters",
         "perl-5",
         "perl-programming",
         "schwartzian-transform"
      ],
      "title" : "Idioms, or How to Write Perlish Perl",
      "epoch" : 1268748001,
      "url_path" : "/pub/2010/03/idioms-or-how-to-write-perlish-perl",
      "authors" : [
         "chromatic"
      ],
      "url" : "https://www.perl.com/pub/2010/03/idioms-or-how-to-write-perlish-perl"
   },
   {
      "url" : "https://www.perl.com/pub/2010/03/more-code-less-cruft-managing-distributions-with-distzilla",
      "url_path" : "/pub/2010/03/more-code-less-cruft-managing-distributions-with-distzilla",
      "authors" : [
         "ricardo-signes"
      ],
      "epoch" : 1268180052,
      "title" : "More Code, Less Cruft: Managing Distributions with Dist::Zilla",
      "tags" : [
         "cpan",
         "dist-zilla",
         "distributions",
         "perl",
         "perl-5",
         "perl-programming"
      ],
      "categories" : "tooling",
      "description" : "Every software distribution is a bunch of files written and maintained by programmers. The files are of three types: code, documentation, and crap&mdash;though this distinction is too subtle. Much of the documentation and code is crap, too. It's pointless. It's..."
   },
   {
      "epoch" : 1210147200,
      "authors" : [
         "chromatic",
         "doug-sheppard"
      ],
      "url_path" : "/pub/2008/05/07/beginners-introduction-to-perl-510-part-2",
      "url" : "https://www.perl.com/pub/2008/05/07/beginners-introduction-to-perl-510-part-2",
      "description" : " A Beginner's Introduction to Perl 5.10 talked about the core elements of Perl: variables (scalars, arrays, and hashes), math operators and some basic flow control (the for statement). Now it's time to interact with the world. (A Beginner's Introduction...",
      "categories" : "tutorials",
      "title" : "Beginner's Introduction to Perl 5.10, Part 2",
      "tags" : [
         "files",
         "perl-5-10",
         "perl-filehandles",
         "string",
         "tutorials"
      ]
   },
   {
      "title" : "A Beginner's Introduction to Perl 5.10",
      "tags" : [
         "novice-programmers",
         "perl-5-10",
         "perl-for-beginners",
         "tutorials"
      ],
      "categories" : "tutorials",
      "description" : "First, a Little Sales Pitch Editor's note: this series is based on Doug Sheppard's Beginner's Introduction to Perl. A Beginner's Introduction to Files and Strings with Perl 5.10 explains how to use files and strings, and A Beginner's Introduction to...",
      "url" : "https://www.perl.com/pub/2008/04/23/a-beginners-introduction-to-perl-510",
      "authors" : [
         "chromatic",
         "doug-sheppard"
      ],
      "url_path" : "/pub/2008/04/23/a-beginners-introduction-to-perl-510",
      "epoch" : 1208937600
   },
   {
      "title" : "Using Amazon S3 from Perl",
      "tags" : [
         "amazon",
         "cloud-storage",
         "rest",
         "s3",
         "web-services"
      ],
      "description" : " Data management is a critical and challenging aspect for any online resource. With exponentially growing data sizes and popularity of rich media, even small online resources must effectively manage and distribute a significant amount of data. Moreover, the peace...",
      "categories" : "web",
      "url" : "https://www.perl.com/pub/2008/04/08/using-amazon-s3-from-perl",
      "url_path" : "/pub/2008/04/08/using-amazon-s3-from-perl",
      "authors" : [
         "abel-lin"
      ],
      "epoch" : 1207641600
   },
   {
      "epoch" : 1205481600,
      "url_path" : "/pub/2008/03/14/reverse-callback-templating",
      "authors" : [
         "james-robson"
      ],
      "url" : "https://www.perl.com/pub/2008/03/14/reverse-callback-templating",
      "categories" : "tooling",
      "description" : " Programmers have long recognized that separating code logic from presentation is good. The Perl community has produced many fine systems for doing just this. While there are many systems, they largely fall within two execution models, pipeline and callback...",
      "tags" : [
         "mvc",
         "presentation",
         "template-recall",
         "templating",
         "text-tools"
      ],
      "title" : "Reverse Callback Templating"
   },
   {
      "epoch" : 1202889600,
      "authors" : [
         "vladi-belperchinov-shabanski"
      ],
      "url_path" : "/pub/2008/02/13/elements-of-access-control",
      "url" : "https://www.perl.com/pub/2008/02/13/elements-of-access-control",
      "categories" : "security",
      "description" : " Why Gates? In a perfect world we wouldn't do things we should not. However the world is not like this; people do forbidden things sometimes. This also applies to computer systems used by more than one person. Almost everyone...",
      "title" : "Elements of Access Control",
      "tags" : [
         "access-control",
         "privacy",
         "security",
         "software-development"
      ]
   },
   {
      "title" : "How to Tell Your Perl Story (at OSCON)",
      "tags" : [
         "conference",
         "lightning-talks",
         "oscon",
         "courses-and-training"
      ],
      "categories" : "community",
      "description" : "brian d foy is the author of Mastering Perl, now available in its second edition, as well as several other Perl books. As the founder of Perl mongers, he's been active in the Perl community for almost 20 years. Ever...",
      "url" : "https://www.perl.com/pub/2008/01/18/how-to-tell-your-perl-story",
      "authors" : [
         "brian-d-foy"
      ],
      "url_path" : "/pub/2008/01/18/how-to-tell-your-perl-story",
      "epoch" : 1200643200
   },
   {
      "epoch" : 1198224000,
      "url_path" : "/pub/2007/12/21/20-years-of-perl",
      "authors" : [
         "chromatic"
      ],
      "url" : "https://www.perl.com/pub/2007/12/21/20-years-of-perl",
      "categories" : "community",
      "description" : "For Perl's 20th anniversary, several Perl programmers reflect on their experiences with the language.",
      "title" : "Memories of 20 Years of Perl",
      "tags" : [
         "anniversary",
         "memories",
         "programming-stories",
         "advocacy"
      ]
   },
   {
      "authors" : [
         "larry-wall"
      ],
      "url_path" : "/pub/2007/12/06/soto-11",
      "epoch" : 1196928000,
      "url" : "https://www.perl.com/pub/2007/12/06/soto-11",
      "categories" : "development",
      "description" : " I think, to most people, scripting is a lot like obscenity. I can't define it, but I'll know it when I see it. Here are some common memes floating around: Simple language \"Everything is a string\" Rapid prototyping Glue...",
      "title" : "Programming is Hard, Let's Go Scripting...",
      "tags" : [
         "language-design",
         "larry-wall",
         "perl-5",
         "perl-6",
         "programming-languages",
         "scripting",
         "scripting-languages",
         "state-of-the-onion",
         "worse-is-better"
      ]
   },
   {
      "authors" : [
         "detlef-groth"
      ],
      "url_path" : "/pub/2007/09/20/pdf-processing-with-perl",
      "epoch" : 1190361600,
      "url" : "https://www.perl.com/pub/2007/09/20/pdf-processing-with-perl",
      "description" : " Adobe's PDF has become a standard for text documents. Most office products can export their content into PDF. However, this software reaches its limits if you want advanced tasks such as combining different PDF documents into one single document...",
      "categories" : "cpan",
      "tags" : [
         "creating-pdfs",
         "pdf",
         "pdf-create",
         "pdf-reuse"
      ],
      "title" : "PDF Processing with Perl"
   },
   {
      "authors" : [
         "andy-sylvester"
      ],
      "url_path" : "/pub/2007/08/09/making-perl-modules",
      "epoch" : 1186473600,
      "url" : "https://www.perl.com/pub/2007/08/09/making-perl-modules",
      "categories" : "cpan",
      "description" : " Perl software development can occur at several levels. When first developing the idea for an application, a Perl developer may start with a short program to flesh out the necessary algorithms. After that, the next step might be to...",
      "tags" : [
         "cpan",
         "modules",
         "packaging",
         "perl-code",
         "perl-distribution",
         "perl-reuse"
      ],
      "title" : "Making Perl Reusable with Modules"
   },
   {
      "epoch" : 1184227200,
      "url_path" : "/pub/2007/07/12/options-and-configuration",
      "authors" : [
         "jon-allen"
      ],
      "url" : "https://www.perl.com/pub/2007/07/12/options-and-configuration",
      "categories" : "cpan",
      "description" : " When you first fire up your editor and start writing a program, it's tempting to hardcode any settings or configuration so you can focus on the real task of getting the thing working. But as soon as you have...",
      "tags" : [
         "argument-processing",
         "cli",
         "configuration-files",
         "getopt",
         "getopt-argvfile",
         "getopt-long"
      ],
      "title" : "Option and Configuration Processing Made Easy"
   },
   {
      "title" : "Better Code Through Destruction",
      "tags" : [
         "object-destructor",
         "perl-memory-leaks",
         "perl-memory-management",
         "raii",
         "reference-counting"
      ],
      "categories" : "cpan",
      "description" : " Larry Wall said that Perl makes easy things easy and hard things possible. Perl is good both for writing a two-line script that saves the world at the last minute (well, at least it saves you and your project)...",
      "url" : "https://www.perl.com/pub/2007/06/07/better-code-through-destruction",
      "epoch" : 1181203200,
      "authors" : [
         "igor-gariev"
      ],
      "url_path" : "/pub/2007/06/07/better-code-through-destruction"
   },
   {
      "url" : "https://www.perl.com/pub/2007/05/10/everyday-perl-6",
      "url_path" : "/pub/2007/05/10/everyday-perl-6",
      "authors" : [
         "jonathan-scott-duff"
      ],
      "epoch" : 1178784000,
      "tags" : [
         "parrot",
         "perl-5",
         "perl-6",
         "pugs"
      ],
      "title" : "Everyday Perl 6",
      "description" : " Perl 6 will soon be here. How will programming in Perl 6 be different from programming in Perl 5 for your average Perl programmer? The answer is: very different yet very much the same. A Perl 6 program viewed...",
      "categories" : "perl-6"
   },
   {
      "tags" : [
         "aop",
         "cross-cutting-concerns",
         "glut",
         "opengl",
         "pogl",
         "subroutine-attributes",
         "test-counts",
         "c-and-perl"
      ],
      "title" : "Lightning Strikes Four Times",
      "categories" : "development",
      "description" : " by Mike Friedman Good software design principles tell us that we should work to separate unrelated concerns. For example, the popular Model-View-Controller (MVC) pattern is common in web application designs. In MVC, separate modular components form a model, which...",
      "url" : "https://www.perl.com/pub/2007/04/12/lightning-four",
      "epoch" : 1176364800,
      "url_path" : "/pub/2007/04/12/lightning-four",
      "authors" : [
         "shlomi-fish",
         "brian-d-foy",
         "bob-free",
         "mike-friedman"
      ]
   },
   {
      "authors" : [
         "phil-crow"
      ],
      "url_path" : "/pub/2007/03/01/perl-6-parameter-passing",
      "epoch" : 1172736000,
      "url" : "https://www.perl.com/pub/2007/03/01/perl-6-parameter-passing",
      "categories" : "perl-6",
      "description" : " Perl 6 is not finished, but you can already play with it. I hope this article will encourage you to try it. Begin by installing Pugs, a Perl 6 compiler implemented in Haskell. Note that you will also need...",
      "title" : "The Beauty of Perl 6 Parameter Passing",
      "tags" : [
         "exegeses",
         "parameter-passing",
         "parrot",
         "perl",
         "perl-6",
         "pugs",
         "subroutines",
         "synopses"
      ]
   },
   {
      "tags" : [
         "html-template",
         "template",
         "web-templates",
         "widgets",
         "webcgi"
      ],
      "title" : "Advanced HTML::Template: Widgets",
      "description" : " My previous article, looked at extending HTML::Template through custom tags and filters. This article looks at ways to manage large, more complex pages, by bundling HTML::Template into something like GUI \"widgets\" (or \"controls\"). Imagine you have a basic page...",
      "categories" : "web",
      "url" : "https://www.perl.com/pub/2007/02/02/htmltemplate-widgets",
      "epoch" : 1170316800,
      "authors" : [
         "philipp-janert"
      ],
      "url_path" : "/pub/2007/02/02/htmltemplate-widgets"
   },
   {
      "url" : "https://www.perl.com/pub/2007/01/11/painless-ppm",
      "authors" : [
         "josh-stroschein"
      ],
      "url_path" : "/pub/2007/01/11/painless-ppm",
      "epoch" : 1168502400,
      "title" : "Painless Windows Module Installation with PPM",
      "tags" : [
         "activestate-perl",
         "cpan",
         "perl-windows",
         "ppm",
         "ppm-installation",
         "ppm-repositories"
      ],
      "categories" : "windows",
      "description" : " I have recently been working on an installation package for the Microsoft Windows series of operating systems (Windows 2000 and newer). One of the primary components of this installation package is the installation of ActiveState's distribution of Perl, known..."
   },
   {
      "authors" : [
         "andrew-hanenkamp"
      ],
      "url_path" : "/pub/2006/12/21/using-java-classes",
      "epoch" : 1166688000,
      "url" : "https://www.perl.com/pub/2006/12/21/using-java-classes",
      "description" : " I started a new job recently to refocus my career from systems administration to web development. Part of that move meant using Java as my primary language at work and using a relatively new technology from the Java Community...",
      "categories" : "development",
      "tags" : [
         "inline-java",
         "java-bindings",
         "java-classes",
         "jcr",
         "perl-bindings"
      ],
      "title" : "Using Java Classes in Perl"
   },
   {
      "url" : "https://www.perl.com/pub/2006/11/30/html-template-filters",
      "epoch" : 1164873600,
      "authors" : [
         "philipp-janert"
      ],
      "url_path" : "/pub/2006/11/30/html-template-filters",
      "title" : "Advanced HTML::Template: Filters",
      "tags" : [
         "filters",
         "html-templating",
         "html-template",
         "perl-templating"
      ],
      "description" : " The CPAN module HTML::Template is a very simple, yet extremely useful module to achieve true separation of presentation and logic when programming CGI scripts. The basic idea is that, rather than having print statements scattered all through your code...",
      "categories" : "web"
   },
   {
      "tags" : [
         "hash-tables",
         "hashes",
         "perl-data-structures",
         "perl-patterns",
         "perl-syntax",
         "perl-variables"
      ],
      "title" : "Hash Crash Course",
      "description" : " When I teach about hashes, I do what most Perl tutors and tutorials do: I introduce the hash as a \"dictionary\": a mapping between one thing and another. The classic example, for instance, is to have a set of...",
      "categories" : "development",
      "url" : "https://www.perl.com/pub/2006/11/02/all-about-hashes",
      "epoch" : 1162454400,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2006/11/02/all-about-hashes"
   },
   {
      "url_path" : "/pub/2006/10/19/cgi/application",
      "authors" : [
         "mark-stosberg"
      ],
      "epoch" : 1161244800,
      "url" : "https://www.perl.com/pub/2006/10/19/cgi/application",
      "categories" : "web",
      "description" : " This article provides an update on the popular and mature CGI::Application framework for web applications. It assumes a basic understanding of the system, so reviewing the previous Perl.com article about CGI::Application may be helpful background reading. CGI::Application and Catalyst...",
      "tags" : [
         "cgi-application",
         "perl-frameworks",
         "perl-web-applications",
         "web-development"
      ],
      "title" : "Rapid Website Development with CGI::Application"
   },
   {
      "description" : " Welcome to the tenth State of the Perl Onion. For those of you who are unfamiliar with my methods, this is the annual speech wherein I ramble on about various things that are only marginally related to the state...",
      "categories" : "community",
      "tags" : [
         "larryisms",
         "perl-5",
         "perl-6",
         "perl-6-on-perl-5",
         "perl-humor",
         "perl-status",
         "state-of-the-onion"
      ],
      "title" : "The State of the Onion 10",
      "epoch" : 1158825600,
      "url_path" : "/pub/2006/09/21/onion",
      "authors" : [
         "larry-wall"
      ],
      "url" : "https://www.perl.com/pub/2006/09/21/onion"
   },
   {
      "title" : "Generating UML and Sequence Diagrams",
      "tags" : [
         "diagramming-code",
         "perl-and-java",
         "sequence-diagrams",
         "uml",
         "uml-sequence"
      ],
      "description" : " Imagine yourself in a meeting with management. You're about to begin your third attempt to explain how to process online credit card payments. After a couple of sentences, you see some eyes glazing over. Someone says, \"Perhaps you could...",
      "categories" : "data",
      "url" : "https://www.perl.com/pub/2006/08/03/sequence-diagrams",
      "epoch" : 1154592000,
      "authors" : [
         "phil-crow"
      ],
      "url_path" : "/pub/2006/08/03/sequence-diagrams"
   },
   {
      "description" : "Using Module::Build, using Swing from Perl, turning modules into scripts, adding mocks to test fixtures-it's time for more Perl lightning articles!",
      "categories" : "development",
      "title" : "Still More Perl Lightning Articles",
      "tags" : [
         "java-swing",
         "mock-objects",
         "module-build-convert",
         "perl-lightning-articles",
         "perl-modules",
         "perl-scripts",
         "perl-tricks",
         "refactoring-tests",
         "test-organization",
         "test-class",
         "test-mockobject-extends",
         "user-interfaces"
      ],
      "epoch" : 1152777600,
      "authors" : [
         "chromatic",
         "phil-crow",
         "josh-mcadams",
         "steven-schubiger"
      ],
      "url_path" : "/pub/2006/07/13/lightning-articles",
      "url" : "https://www.perl.com/pub/2006/07/13/lightning-articles"
   },
   {
      "title" : "FEAR-less Site Scraping",
      "tags" : [
         "domain-specific-languages",
         "dsl",
         "fear",
         "fear-api",
         "web-robots",
         "web-scraping",
         "web-spiders"
      ],
      "description" : " Imagine that you have an assignment that you need to fetch all of the web pages of a given website, scrape data from them, and transfer the data to another place, such as a database or plain files. This...",
      "categories" : "web",
      "url" : "https://www.perl.com/pub/2006/06/01/fear-api",
      "epoch" : 1149148800,
      "url_path" : "/pub/2006/06/01/fear-api",
      "authors" : [
         "yung-chung-lin"
      ]
   },
   {
      "tags" : [
         "antarctic-perl",
         "antarctic-research",
         "chart-module",
         "charting",
         "graphing",
         "perl-graphs",
         "perl-programming"
      ],
      "title" : "Charting Data at the Bottom of the World",
      "categories" : "graphics",
      "description" : " I have an odd job: I'm the only programmer for about 500 miles. I look after experiments on a remote Antarctic research station and look after the data they produce. As well as the scientific stuff knocking about, we...",
      "url" : "https://www.perl.com/pub/2006/05/04/charting-data",
      "epoch" : 1146729600,
      "url_path" : "/pub/2006/05/04/charting-data",
      "authors" : [
         "alex-gough"
      ]
   },
   {
      "categories" : "debugging",
      "description" : " Many people who work with Perl code never touch the debugger. My goal in this article is to provide reasoned argument for adding the Perl debugger to your set of tools, as well as pointers on how to do...",
      "title" : "Unraveling Code with the Debugger",
      "tags" : [
         "bug-fixing",
         "debugging",
         "maintenance-coding",
         "perl-debugger",
         "perl-maintenance",
         "tracing"
      ],
      "epoch" : 1144310400,
      "url_path" : "/pub/2006/04/06/debugger",
      "authors" : [
         "daniel-allen"
      ],
      "url" : "https://www.perl.com/pub/2006/04/06/debugger"
   },
   {
      "tags" : [
         "ajax",
         "cgi-ajax",
         "perl",
         "perl-and-javascript",
         "perl-web-programming",
         "rest-and-perl"
      ],
      "title" : "Using Ajax from Perl",
      "description" : " If you're even remotely connected to web development, you can't have failed to have heard of Ajax at some point in the last year. It probably sounded like the latest buzzword and was one of those things you stuck...",
      "categories" : "web",
      "url" : "https://www.perl.com/pub/2006/03/02/ajax/and/perl",
      "epoch" : 1141286400,
      "authors" : [
         "dominic-mitchell"
      ],
      "url_path" : "/pub/2006/03/02/ajax/and/perl"
   },
   {
      "url" : "https://www.perl.com/pub/2006/02/23/advanced/subroutines",
      "epoch" : 1140681600,
      "url_path" : "/pub/2006/02/23/advanced/subroutines",
      "authors" : [
         "rob-kinyon"
      ],
      "title" : "Advanced Subroutine Techniques",
      "tags" : [
         "perl-code-reuse",
         "perl-functions",
         "perl-subroutines",
         "perl-tutorial"
      ],
      "description" : " In \"Making Sense of Subroutines,\" I wrote about what subroutines are and why you want to use them. This article expands on that topic, discussing some of the more common techniques for subroutines to make them even more useful....",
      "categories" : "development"
   },
   {
      "epoch" : 1140076800,
      "url_path" : "/pub/2006/02/16/mldbm",
      "authors" : [
         "dave-baker"
      ],
      "url" : "https://www.perl.com/pub/2006/02/16/mldbm",
      "categories" : "data",
      "description" : " As a Perl beginner, I wrote many scripts that created text files to store snippets of data. Eventually I had hundreds of little text files in a data directory, each one holding one piece of information in the form...",
      "tags" : [
         "data-persistence",
         "dbm",
         "data-structures",
         "persistence",
         "references"
      ],
      "title" : "Managing Rich Data Structures"
   },
   {
      "url" : "https://www.perl.com/pub/2006/02/09/debug/mod/perl",
      "epoch" : 1139472000,
      "url_path" : "/pub/2006/02/09/debug/mod/perl",
      "authors" : [
         "frank-wiles"
      ],
      "title" : "Debugging and Profiling mod_perl Applications",
      "tags" : [
         "apache-db",
         "apache-dprof",
         "apache-smallprof",
         "mod-perl"
      ],
      "description" : " Because of the added complexity of being inside of the Apache web server, debugging mod_perl applications is often not as straightforward as it is with regular Perl programs or CGIs. Is the problem with your code, Apache, a CPAN...",
      "categories" : "web"
   },
   {
      "url" : "https://www.perl.com/pub/2006/02/02/x11/gui/testing",
      "epoch" : 1138867200,
      "authors" : [
         "george-nistorica"
      ],
      "url_path" : "/pub/2006/02/02/x11/gui/testing",
      "title" : "Test-Driving X11 GUIs",
      "tags" : [
         "automated-testing",
         "gui-automation",
         "gui-testing",
         "perl-automation",
         "perl-testing",
         "x11-testing",
         "x11-guitest",
         "user-interfaces"
      ],
      "categories" : "graphics",
      "description" : " Driving X11 GUIs using X11::GUITest Introduction Interfaces to GUI applications like DCOP or D-BUS allow you to interact with GUI applications in order to get at their internal states or set some arbitrary states. Sometimes GUIs don't allow for..."
   },
   {
      "url" : "https://www.perl.com/pub/2006/01/26/more/advanced/perl",
      "epoch" : 1138262400,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2006/01/26/more/advanced/perl",
      "tags" : [
         "advanced-perl",
         "html-parsing",
         "natural-language-processing",
         "nlp",
         "oo-perl",
         "perl-accessors",
         "perl-events",
         "perl-modules",
         "perl-nci",
         "perl-nlp",
         "perl-parsing",
         "perl-shared-libraries",
         "perl-testing",
         "perl-xs",
         "poe"
      ],
      "title" : "More Advancements in Perl Programming",
      "description" : " Around Easter last year, I finished writing the second edition of Advanced Perl Programming, a task that had been four years in the making. The aim of this new edition was to reflect the way that Perl programming had...",
      "categories" : "development"
   },
   {
      "epoch" : 1137657600,
      "authors" : [
         "kendrew-lau"
      ],
      "url_path" : "/pub/2006/01/19/analyzing/html",
      "url" : "https://www.perl.com/pub/2006/01/19/analyzing/html",
      "categories" : "web",
      "description" : " Routine work is all around us every day, no matter if you like it or not. For a teacher on computing subjects, grading assignments can be such work. Certain computing assignments aim at practicing operating skills rather than creativity,...",
      "tags" : [
         "html-assignments-perl-html",
         "parsing-html",
         "perl-assignments",
         "perl-parsing",
         "school"
      ],
      "title" : "Analyzing HTML with Perl"
   },
   {
      "description" : "In the sixth year of Perl 6's multi-year reinvention, some of its developers reflected on why it was taking so long.",
      "categories" : "perl-6",
      "tags" : [
         "language-design",
         "parrot",
         "perl",
         "perl-6",
         "perl-design",
         "ponie",
         "programming-languages",
         "pugs"
      ],
      "title" : "What Is Perl 6",
      "url_path" : "/pub/2006/01/12/what/is/perl/6",
      "authors" : [
         "chromatic"
      ],
      "epoch" : 1137052800,
      "url" : "https://www.perl.com/pub/2006/01/12/what/is/perl/6"
   },
   {
      "title" : "Lexing Your Data",
      "tags" : [
         "building-parsers",
         "grammars",
         "lexing",
         "parsing",
         "regular-expressions"
      ],
      "description" : " s/(?&lt;!SHOOTING YOURSELF IN THE )FOOT/HEAD/g Most of us have tried at one time or another to use regular expressions to do things we shouldn't: parsing HTML, obfuscating code, washing dishes, etc. This is what the technical term \"showing off\"...",
      "categories" : "regular-expressions",
      "url" : "https://www.perl.com/pub/2006/01/05/parsing",
      "epoch" : 1136448000,
      "url_path" : "/pub/2006/01/05/parsing",
      "authors" : [
         "curtis-poe"
      ]
   },
   {
      "categories" : "tooling",
      "description" : " This article is a follow-up to the lightning talk I delivered at the recent YAPC::Europe 2005 that took place in Braga, Portugal: \"Perl Vs. Korn Shell: 1-1.\" I presented two case studies taken from my experience as Perl expert...",
      "title" : "A Timely Start",
      "tags" : [
         "perl-administration",
         "perl-installation",
         "perl-optimization",
         "perl-profiling"
      ],
      "epoch" : 1135152000,
      "url_path" : "/pub/2005/12/21/a/timely/start",
      "authors" : [
         "jean-louis-leroy"
      ],
      "url" : "https://www.perl.com/pub/2005/12/21/a/timely/start"
   },
   {
      "title" : "Logic Programming with Perl and Prolog",
      "tags" : [
         "ai-prolog",
         "graphviz",
         "perl",
         "perl-logic-programming",
         "prolog"
      ],
      "description" : " Computing languages can be addictive; developers sometimes blame themselves for perceived inadequacies, making apologies for them. That is the case, at least, when one defends his or her language of choice against the criticism of another language's devotee. Regardless,...",
      "categories" : "development",
      "url" : "https://www.perl.com/pub/2005/12/15/perl/prolog",
      "epoch" : 1134633600,
      "authors" : [
         "robert-pratte"
      ],
      "url_path" : "/pub/2005/12/15/perl/prolog"
   },
   {
      "epoch" : 1134028800,
      "authors" : [
         "phil-crow"
      ],
      "url_path" : "/pub/2005/12/08/test/files",
      "url" : "https://www.perl.com/pub/2005/12/08/test/files",
      "categories" : "data",
      "description" : " For the last several years, there has been more and more emphasis on automated testing. No self-respecting CPAN author can post a distribution without tests. Yet some things are hard to test. This article explains how writing Test::Files gave...",
      "title" : "Testing Files and Test Modules",
      "tags" : [
         "file-testing",
         "perl-test-modules",
         "perl-testing",
         "test-builder",
         "test-builder-tester",
         "test-files"
      ]
   },
   {
      "title" : "Perl Success Story: Client-Side Collection and Reporting",
      "tags" : [
         "binaries",
         "client-side-perl",
         "hitachi-gst",
         "perl",
         "perl-registry",
         "perlapp",
         "windows-perl"
      ],
      "description" : " Accurate software inventory management is critical to any organization. Without an accurate software inventory, organizations may either be out of compliance with their vendor licensing agreements or they may be paying extra for licenses that they do not need....",
      "categories" : "community",
      "url" : "https://www.perl.com/pub/2005/12/01/client/side/success",
      "epoch" : 1133424000,
      "authors" : [
         "jiann-wang"
      ],
      "url_path" : "/pub/2005/12/01/client/side/success"
   },
   {
      "url" : "https://www.perl.com/pub/2005/11/23/bricolage/analysis",
      "authors" : [
         "david-wheeler"
      ],
      "url_path" : "/pub/2005/11/23/bricolage/analysis",
      "epoch" : 1132732800,
      "title" : "Document Modeling with Bricolage",
      "tags" : [
         "bricolage",
         "cms-workflow",
         "content-management",
         "document-modeling",
         "open-source-cms",
         "dynamic-content"
      ],
      "description" : " Previous Perl.com articles have reviewed where Bricolage fits into the universe of content management systems and worked through Bricolage installation and Bricolage configuration. Now it's time to go through the steps required to model the structure of an existing...",
      "categories" : "data"
   },
   {
      "epoch" : 1132214400,
      "authors" : [
         "christopher-h-laco"
      ],
      "url_path" : "/pub/2005/11/17/handel",
      "url" : "https://www.perl.com/pub/2005/11/17/handel",
      "description" : " Over the years of doing various levels of web-based programming, I've come feel like Dante taking a trip through the nine circles of web programmer hell. There are certain things we must endure over and over, from project to...",
      "categories" : "web",
      "tags" : [
         "catalyst",
         "e-commerce",
         "handel",
         "perl-catalyst",
         "perl-web-frameworks",
         "perl-web-programming"
      ],
      "title" : "Building E-Commerce Sites with Handel"
   },
   {
      "tags" : [
         "functional-perl-programming",
         "perl-fp",
         "perl-style",
         "perl-subroutines",
         "perl-subs",
         "perl-tips",
         "perl-tutorial"
      ],
      "title" : "Making Sense of Subroutines",
      "categories" : "development",
      "description" : " Editor's Note: This article has a followup in Advanced Subroutine Techniques. A subroutine (or routine, function, procedure, macro, etc.) is, at its heart, a named chunk of work. It's shorthand that allows you to think about your problem in...",
      "url" : "https://www.perl.com/pub/2005/11/03/subroutines",
      "epoch" : 1131004800,
      "url_path" : "/pub/2005/11/03/subroutines",
      "authors" : [
         "rob-kinyon"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2005/10/20/scriptome",
      "epoch" : 1129795200,
      "authors" : [
         "amir-karger",
         "eitan-rubin"
      ],
      "url_path" : "/pub/2005/10/20/scriptome",
      "tags" : [
         "bioinformatics",
         "bioperl",
         "data-munging",
         "biology",
         "scriptome"
      ],
      "title" : "Data Munging for Non-Programming Biologists",
      "description" : " Have you ever renamed 768 files? Merged the content from 96 files into a spreadsheet? Filtered 100 lines out of a 20,000-line file? Have you ever done these things by hand? Disciples of laziness-one of the three Perl programmer's...",
      "categories" : "science"
   },
   {
      "tags" : [
         "perl-gui",
         "perl-gui-programming",
         "perl-menus",
         "perl-wxwidgets",
         "wxperl",
         "wxwidgets"
      ],
      "title" : "Making Menus with wxPerl",
      "categories" : "graphics",
      "description" : " In a previous article about wxPerl published on Perl.com, Jouke Visser taught the very basics of wxPerl programming. In this article, I will continue with Jouke's work, explaining how to add menus in our wxPerl applications. I will cover...",
      "url" : "https://www.perl.com/pub/2005/10/06/wxperl/menus",
      "url_path" : "/pub/2005/10/06/wxperl/menus",
      "authors" : [
         "roberto-alamos"
      ],
      "epoch" : 1128585600
   },
   {
      "categories" : "community",
      "description" : " For the last couple of years, we've been homeschooling our two youngest kids. Gloria has been making sure they learn the easy subjects like history and mathematics. I've been making sure they also learn the hard subjects like, um,...",
      "tags" : [
         "larryisms",
         "perl-6",
         "perl-humor",
         "perl-programmers",
         "perl-spies",
         "perl-status",
         "state-of-the-onion"
      ],
      "title" : "The State of the Onion 9",
      "url_path" : "/pub/2005/09/22/onion",
      "authors" : [
         "larry-wall"
      ],
      "epoch" : 1127376000,
      "url" : "https://www.perl.com/pub/2005/09/22/onion"
   },
   {
      "categories" : "unicode",
      "description" : " Author's note: Autrijus Tang is a speaker at this October's European Open Source Convention. In the fine tradition of the OSCON, he is a Perl hacker, entrepreneur, internationalization geek, and self-proclaimed \"Net activist, artist, and anarchist.\" AT EuroOSCON, Tang...",
      "tags" : [
         "autrijus-tang",
         "cpan",
         "eurooscon",
         "european-open-source-convention",
         "gettext-bindings",
         "haskell",
         "perl-internationalization",
         "pugs"
      ],
      "title" : "Perl Internationalization and Haskell: An Interview with Autrijus Tang",
      "url_path" : "/pub/2005/09/08/autrijus-tang",
      "authors" : [
         "edd-dumbill"
      ],
      "epoch" : 1126166400,
      "url" : "https://www.perl.com/pub/2005/09/08/autrijus-tang"
   },
   {
      "authors" : [
         "matt-fowles"
      ],
      "url_path" : "/pub/2005/08/p6pdigest/20050825",
      "epoch" : 1124956800,
      "url" : "https://www.perl.com/pub/2005/08/p6pdigest/20050825",
      "categories" : "perl-6",
      "description" : " All- Welcome to another Monday summary, which hopefully provides some evidence that Mondays can get better. It always feels like writing summaries is an uphill battle, so perhaps I should switch to writing about Perl 6 Language first and...",
      "title" : "This Week in Perl 6, August 17-23, 2005",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6",
         "pugs",
         "vm-development"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2005/08/25/tools",
      "authors" : [
         "matisse-enzer"
      ],
      "url_path" : "/pub/2005/08/25/tools",
      "epoch" : 1124956800,
      "title" : "Perl Needs Better Tools",
      "tags" : [
         "epic",
         "ide",
         "refactoring",
         "tools",
         "editors"
      ],
      "description" : " Perl is in danger of becoming a fading language-new programmers are learning Java and Python in college, and companies like Google hardly use Perl at all. If you are afraid that Perl may be in danger of becoming irrelevant...",
      "categories" : "tooling"
   },
   {
      "url" : "https://www.perl.com/pub/2005/08/18/ical/dot",
      "authors" : [
         "robert-pratte"
      ],
      "url_path" : "/pub/2005/08/18/ical/dot",
      "epoch" : 1124352000,
      "tags" : [
         "calendar-visualization",
         "dot",
         "graphviz",
         "ical",
         "icalendar",
         "perl-glue-language",
         "statistics"
      ],
      "title" : "Parsing iCal Data",
      "description" : " One of the attributes of a killer application is that it does something cool: it allows you to view or organize information in new and interesting ways, saves you time, or helps you win that auction bid. Yet one...",
      "categories" : "science"
   },
   {
      "url" : "https://www.perl.com/pub/2005/08/p6pdigest/20050818",
      "url_path" : "/pub/2005/08/p6pdigest/20050818",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1124352000,
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6",
         "pge",
         "pugs",
         "vm-development"
      ],
      "title" : "This Week in Perl 6, Through August 14, 2005",
      "categories" : "perl-6",
      "description" : " As you will note from the date in the title, it's been a short week. We're switching back to a midnight Sunday/Monday rollover in order to make life easier for the Perl.com types. So, if I can avoid being..."
   },
   {
      "url" : "https://www.perl.com/pub/2005/08/15/syndication/update",
      "epoch" : 1124092800,
      "authors" : [
         "perldotcom"
      ],
      "url_path" : "/pub/2005/08/15/syndication/update",
      "tags" : [],
      "title" : "Important Notice for Perl.com Readers About O'Reilly RSS and Atom Feeds",
      "description" : "O'Reilly Media, Inc. is rolling out a new syndication mechanism that provides greater control over the content we publish online. You'll notice some improvements immediately, such as better standards compliance, graphical tiles accompanying article descriptions, and enclosure support for podcatching...",
      "categories" : "perldotcom"
   },
   {
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6",
         "pugs",
         "vm-development"
      ],
      "title" : "This Week in Perl 6, August 2-9, 2005",
      "categories" : "perl-6",
      "description" : " All- Welcome to another summary, brought to you by Chinese food. The attentive among you will notice that this summary is a day late, because I did not feel like doing it yesterday. If only I could do that...",
      "url" : "https://www.perl.com/pub/2005/08/p6pdigest/20050811",
      "epoch" : 1123747200,
      "url_path" : "/pub/2005/08/p6pdigest/20050811",
      "authors" : [
         "matt-fowles"
      ]
   },
   {
      "tags" : [
         "gui-automation",
         "gui-testing",
         "perl-automation",
         "perl-modules",
         "perl-testing",
         "perl-windows",
         "win32-guitest",
         "windows-automation",
         "windows-scripting"
      ],
      "title" : "Automated GUI Testing",
      "description" : " You use Perl at work. Sometimes you are unhappy because there is one application you always have to click on and fill all those input boxes. It's very boring. Why not let Perl do that while you go grab...",
      "categories" : "windows",
      "url" : "https://www.perl.com/pub/2005/08/11/win32guitest",
      "epoch" : 1123747200,
      "authors" : [
         "george-nistorica"
      ],
      "url_path" : "/pub/2005/08/11/win32guitest"
   },
   {
      "categories" : "perl-6",
      "description" : " In case you were wondering, Darwin ports didn't work its magic and I still don't have a working Haskell compiler. Thank Juerd for feather, even if I did have to turn my laptop upside down to read the MOTD....",
      "title" : "This Week in Perl 6, through August 2, 2005",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6",
         "pge",
         "pugs",
         "vm-development"
      ],
      "epoch" : 1123488000,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2005/08/p6pdigest/20050804",
      "url" : "https://www.perl.com/pub/2005/08/p6pdigest/20050804"
   },
   {
      "url" : "https://www.perl.com/pub/2005/08/04/3d/engine",
      "epoch" : 1123142400,
      "url_path" : "/pub/2005/08/04/3d/engine",
      "authors" : [
         "geoff-broadwell"
      ],
      "tags" : [
         "opengl-lighting",
         "opengl-tutorial",
         "opengl-viewpoint",
         "perl-3d",
         "perl-game-programming",
         "perl-graphics",
         "perl-opengl",
         "perl-sdl"
      ],
      "title" : "Building a 3D Engine in Perl, Part 4",
      "description" : " This article is the fourth in a series aimed at building a full 3D engine in Perl. The first article started with basic program structure and worked up to displaying a simple depth-buffered scene in an OpenGL window. The...",
      "categories" : "games"
   },
   {
      "url" : "https://www.perl.com/pub/2005/07/p6pdigest/20050728",
      "authors" : [
         "matt-fowles"
      ],
      "url_path" : "/pub/2005/07/p6pdigest/20050728",
      "epoch" : 1122537600,
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6",
         "pugs",
         "vm-development"
      ],
      "title" : "This Week in Perl 6, July 20-26, 2005",
      "categories" : "perl-6",
      "description" : " All- Welcome to another Perl 6 summary, brought to you by microwaved Chinese food and air conditioning. I love the modern era. Without further ado, I bring you: Perl 6 Compilers PxPerl Gr&eacute;goire P&eacute;an announced the release of PxPerl..."
   },
   {
      "title" : "Porting Test::Builder to Perl 6",
      "tags" : [
         "parrot",
         "perl-6",
         "perl-6-modules",
         "porting-to-perl-6",
         "pugs",
         "refactoring",
         "test-driven-design-of-perl-6",
         "test-builder",
         "porting"
      ],
      "description" : "Pugs let real people write real Perl 6 code. This article presents a case study of porting Perl's venerable Test::Builder to Perl 6.",
      "categories" : "perl-6",
      "url" : "https://www.perl.com/pub/2005/07/28/test/builder/p6",
      "epoch" : 1122537600,
      "url_path" : "/pub/2005/07/28/test/builder/p6",
      "authors" : [
         "chromatic"
      ]
   },
   {
      "epoch" : 1121932800,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2005/07/p6pdigest/20050721",
      "url" : "https://www.perl.com/pub/2005/07/p6pdigest/20050721",
      "description" : " Welcome to another Perl 6 summary, brought to you by the words &quot;displacement&quot; and &quot;activity.&quot; So far today, I've caught up with everything unread in NetNewsWire, my Flickr groups, every other mailing list I'm subscribed to, and completed about...",
      "categories" : "perl-6",
      "title" : "This Week in Perl 6, July 13-19, 2005",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6",
         "pge",
         "pugs",
         "vm-development"
      ]
   },
   {
      "epoch" : 1121932800,
      "authors" : [
         "mark-leighton-fisher"
      ],
      "url_path" : "/pub/2005/07/21/test/mockdbi",
      "url" : "https://www.perl.com/pub/2005/07/21/test/mockdbi",
      "categories" : "data",
      "description" : " Prelude How do you test DBI programs: Without having to modify your current program code or environment settings? Without having to set up multiple test databases? Without separating your test data from your test code? With tests for every...",
      "title" : "An Introduction to Test::MockDBI",
      "tags" : [
         "database-testing",
         "dbi-testing",
         "mock-objects",
         "perl-automated-testing",
         "perl-testing",
         "test-mockdbi"
      ]
   },
   {
      "authors" : [
         "matt-fowles"
      ],
      "url_path" : "/pub/2005/07/p6pdigest/20050714",
      "epoch" : 1121328000,
      "url" : "https://www.perl.com/pub/2005/07/p6pdigest/20050714",
      "categories" : "perl-6",
      "description" : " All- Welcome to another summary from the frog house, a house so green you can see it from outer space (according to Google Earth). Perl 6 Compiler Building Pugs Workaround Sam Vilain posted a useful workaround to the error...",
      "title" : "This Week in Perl 6, July 5-12, 2005",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6",
         "pugs",
         "vm-development"
      ]
   },
   {
      "title" : "Ten Essential Development Practices",
      "tags" : [
         "maintainable-perl",
         "perl-best-practices",
         "perl-development",
         "perl-discipline",
         "perl-style",
         "serious-perl",
         "style-guides",
         "troubleshooting"
      ],
      "categories" : "development",
      "description" : " The following ten tips come from Perl Best Practices, a new book of Perl coding and development guidelines by Damian Conway. 1. Design the Module's Interface First The most important aspect of any module is not how it implements...",
      "url" : "https://www.perl.com/pub/2005/07/14/bestpractices",
      "epoch" : 1121328000,
      "authors" : [
         "damian-conway"
      ],
      "url_path" : "/pub/2005/07/14/bestpractices"
   },
   {
      "title" : "This Week in Perl 6, June 29-July 5, 2005",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6",
         "pge",
         "pugs",
         "vm-development"
      ],
      "description" : " My, doesn't time fly? Another fortnight gone and another summary to write. It's a hard life, I tell you! This Week in perl6-compiler Where's Everyone Gone? It seems that most of the Perl 6 compiler development discussions occur at...",
      "categories" : "perl-6",
      "url" : "https://www.perl.com/pub/2005/07/p6pdigest/20050707",
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2005/07/p6pdigest/20050707",
      "epoch" : 1120723200
   },
   {
      "epoch" : 1120723200,
      "authors" : [
         "shlomi-fish"
      ],
      "url_path" : "/pub/2005/07/07/navwidgets",
      "url" : "https://www.perl.com/pub/2005/07/07/navwidgets",
      "description" : " Navigation menus are a group of links given at one side of the page that allows users to navigate to different places of a website. Navigation menus allow site visitors to explore other pages of the site and to...",
      "categories" : "web",
      "title" : "Building Navigation Menus",
      "tags" : [
         "html-design",
         "html-menus",
         "html-navigation",
         "html-widgets-navmenu",
         "perl-html-modules"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2005/06/30/annocpan",
      "epoch" : 1120118400,
      "authors" : [
         "ivan-tubert-brohman"
      ],
      "url_path" : "/pub/2005/06/30/annocpan",
      "title" : "Annotating CPAN",
      "tags" : [
         "annocpan",
         "cpan-documentation",
         "perl-documentation",
         "perl-grants",
         "perl-module-documentation",
         "the-perl-foundation",
         "tpf",
         "tpf-grants"
      ],
      "categories" : "cpan",
      "description" : " AnnoCPAN is a new website that shows the documentation for every Perl module available on CPAN and allows anyone to post annotations in the margins of the documents. The notes are public, so everyone can read and reuse them..."
   },
   {
      "url" : "https://www.perl.com/pub/2005/06/p6pdigest/20050630",
      "authors" : [
         "matt-fowles"
      ],
      "url_path" : "/pub/2005/06/p6pdigest/20050630",
      "epoch" : 1120118400,
      "title" : "This Week in Perl 6, June 21-28, 2005",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6",
         "pugs",
         "vm-development"
      ],
      "description" : " All- Long time no see ... err, write ... uh, read ... um ... this. Yeah, long time no this. As Piers hinted, two weeks ago I moved. Moving sucks. For those of you who care, I am still...",
      "categories" : "perl-6"
   },
   {
      "title" : "Data Munging with Sprog",
      "tags" : [
         "data-munging",
         "perl-for-non-programmers",
         "sprog",
         "visual-programming"
      ],
      "categories" : "graphics",
      "description" : " We've all been there-a data translation problem rears its head and you reach for your toolkit of Perl snippets. It might involve parsing a CSV file, extracting MIME attachments, generating bulk SQL insert statements, or scraping data from a...",
      "url" : "https://www.perl.com/pub/2005/06/23/sprog",
      "url_path" : "/pub/2005/06/23/sprog",
      "authors" : [
         "grant-mclean"
      ],
      "epoch" : 1119513600
   },
   {
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6",
         "pge",
         "pugs",
         "vm-development"
      ],
      "title" : "This Week in Perl 6, June 8-21, 2005",
      "categories" : "perl-6",
      "description" : " Surprise! It's me again. You may be wondering what happened to last week's summary (I know I was) and where Matt had gone. Well, I'm not entirely sure where exactly he is now, but last week was moving week...",
      "url" : "https://www.perl.com/pub/2005/06/p6pdigest/20050623",
      "epoch" : 1119513600,
      "url_path" : "/pub/2005/06/p6pdigest/20050623",
      "authors" : [
         "piers-cawley"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2005/06/16/iterators",
      "url_path" : "/pub/2005/06/16/iterators",
      "authors" : [
         "joshua-gatcomb"
      ],
      "epoch" : 1118908800,
      "tags" : [
         "functional-perl",
         "iterators",
         "lisp-and-perl",
         "closures",
         "generators",
         "data-structures"
      ],
      "title" : "Understanding and Using Iterators",
      "description" : " The purpose of this tutorial is to give a general overview of what iterators are, why they are useful, how to build them, and things to consider to avoid common pitfalls. I intend to give the reader enough information...",
      "categories" : "development"
   },
   {
      "categories" : "tooling",
      "description" : " A few years into my programming career, I found myself involved in a somewhat unusual web project for an enormous global IT company. Due to some odd platform issues, we could write the intranet half of the project only...",
      "title" : "Independently Parsing Perl",
      "tags" : [
         "editors",
         "parser",
         "refactoring",
         "ppi"
      ],
      "url_path" : "/pub/2005/06/09/ppi",
      "authors" : [
         "adam-kennedy"
      ],
      "epoch" : 1118304000,
      "url" : "https://www.perl.com/pub/2005/06/09/ppi"
   },
   {
      "epoch" : 1118304000,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2005/06/p6pdigest/20050608",
      "url" : "https://www.perl.com/pub/2005/06/p6pdigest/20050608",
      "description" : " Crumbs. I've remembered to write the summary this week. Now if I can just remember to bill O'Reilly for, err, 2003's summaries. Heck, it's not like waiting for the dollar to get stronger has paid off. Ah well, no...",
      "categories" : "perl-6",
      "title" : "This Week in Perl 6, June 1-7, 2005",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6",
         "pge",
         "pugs",
         "vm-development"
      ]
   },
   {
      "epoch" : 1117699200,
      "authors" : [
         "matt-fowles"
      ],
      "url_path" : "/pub/2005/06/p6pdigest/20050602",
      "url" : "https://www.perl.com/pub/2005/06/p6pdigest/20050602",
      "description" : " All~ Welcome to another Perl 6 summary, brought to you by Aliya's new friends, Masha Nannifer and Philippe, and my own secret running joke. Without further ado, I bring you Perl 6 Compiler. Perl 6 Compiler Method Chaining Alex...",
      "categories" : "perl-6",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6",
         "pugs",
         "vm-development"
      ],
      "title" : "This Week in Perl 6, May 25, 2005-May 31, 2005"
   },
   {
      "title" : "Catalyst",
      "tags" : [
         "catalyst",
         "minimojo",
         "perl-ajax",
         "perl-ajax",
         "perl-mvc",
         "perl-web-apps",
         "perl-web-framework",
         "perl-wiki"
      ],
      "description" : " Web frameworks are an area of significant interest at the moment. Now that we've all learned the basics of web programming, we're ready to get the common stuff out of the way to concentrate on the task at hand;...",
      "categories" : "web",
      "url" : "https://www.perl.com/pub/2005/06/02/catalyst",
      "epoch" : 1117699200,
      "authors" : [
         "jesse-sheidlower"
      ],
      "url_path" : "/pub/2005/06/02/catalyst"
   },
   {
      "title" : "This Week in Perl 6, May 18 - 24, 2005",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6",
         "pugs",
         "vm-development"
      ],
      "categories" : "perl-6",
      "description" : " Note to self: It's generally not a good idea to go installing Tiger on the day you return from holiday. It's especially not a good idea to fail to check that it didn't completely and utterly radish your Postfix...",
      "url" : "https://www.perl.com/pub/2005/05/p6pdigest/20050526",
      "url_path" : "/pub/2005/05/p6pdigest/20050526",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1117180800
   },
   {
      "url_path" : "/pub/2005/05/26/word/control",
      "authors" : [
         "andrew-savikas"
      ],
      "epoch" : 1117094400,
      "url" : "https://www.perl.com/pub/2005/05/26/word/control",
      "description" : " In a recent lightning article, Customizing Emacs with Perl, Bob DuCharme explained how to use the Emacs shell-command-on-region function to invoke a Perl script on a marked region of text. Bob writes that he was reluctant to invest the...",
      "categories" : "windows",
      "title" : "Manipulating Word Documents with Perl",
      "tags" : [
         "invoke-perl-on-windows",
         "perl-embed",
         "word-macro-alternatives",
         "word-manipulation"
      ]
   },
   {
      "url_path" : "/pub/2005/04/p6pdigest/20050519",
      "authors" : [
         "matt-fowles"
      ],
      "epoch" : 1116489600,
      "url" : "https://www.perl.com/pub/2005/04/p6pdigest/20050519",
      "categories" : "perl-6",
      "description" : " All~ Welcome ot another fortnight's summary. Wouldn't it just figure that I can't think of anything sufficiently non-sequiterish to amuse myself. Perhaps I need a running gag like Leon Brocard or chromatic's cummingesque capitalization. Maybe I should start one...",
      "title" : "This Week in Perl 6, May 3, 2005 - May 17, 2005",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6",
         "pugs",
         "vm-development"
      ]
   },
   {
      "description" : " You have set up and configured various wireless access devices, but could not find one that included all of the features you needed. You could wait for a firmware upgrade from your manufacturer, hoping that they will include the...",
      "categories" : "networking",
      "tags" : [
         "awlp",
         "perl-for-system-administration",
         "slackware",
         "wireless-gateway",
         "networking-applications",
         "system-administration-applications"
      ],
      "title" : "Build a Wireless Gateway with Perl",
      "url_path" : "/pub/2005/05/19/wireless/gw",
      "authors" : [
         "alptekin-cakircali"
      ],
      "epoch" : 1116489600,
      "url" : "https://www.perl.com/pub/2005/05/19/wireless/gw"
   },
   {
      "url" : "https://www.perl.com/pub/2005/05/12/rdice",
      "url_path" : "/pub/2005/05/12/rdice",
      "authors" : [
         "chromatic"
      ],
      "epoch" : 1115884800,
      "title" : "Inside YAPC::NA 2005",
      "tags" : [
         "perl-conference",
         "perl-mongers",
         "richard-dice",
         "toronto",
         "toronto-perl-mongers",
         "tpf",
         "tpm",
         "yapc",
         "yapc-na"
      ],
      "description" : "An interview with Richard Dice, who helped organize Perl's YAPC::NA 2005 in Toronto.",
      "categories" : "community"
   },
   {
      "url" : "https://www.perl.com/pub/2005/05/05/aggregation",
      "authors" : [
         "fred-moyer"
      ],
      "url_path" : "/pub/2005/05/05/aggregation",
      "epoch" : 1115280000,
      "tags" : [
         "data-aggregation",
         "data-warehousing",
         "enterprise-perl",
         "large-perl-systems",
         "perl-rdf",
         "perl-xml",
         "sax-machines",
         "officebusiness"
      ],
      "title" : "Massive Data Aggregation with Perl",
      "categories" : "data",
      "description" : " This article is a case study of the use of Perl and XML/RDF technologies to channel disparate sources of data into a semi-structured repository. This repository helped to build structured OLAP warehouses by mining an RDF repository with SAX..."
   },
   {
      "categories" : "perl-6",
      "description" : " All, Welcome to another week's summary. This week I shall endeavor not to delete my summary accidentally or destroy the world. Here we go with p6c. Perl 6 Compilers Implicit $_ on for Loops Kiran Kumar found a bug...",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6",
         "pugs",
         "vm-development"
      ],
      "title" : "This Week in Perl 6, April 26 - May 3, 2005",
      "url_path" : "/pub/2005/04/p6pdigest/20050505",
      "authors" : [
         "matt-fowles"
      ],
      "epoch" : 1115280000,
      "url" : "https://www.perl.com/pub/2005/04/p6pdigest/20050505"
   },
   {
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6",
         "pugs",
         "vm-development"
      ],
      "title" : "This Week in Perl 6, April 20 - 26, 2005",
      "categories" : "perl-6",
      "description" : " The Perl 6 Summary for the Week Ending 2005-04-26 It's my turn again. What fun. \"What,\" I hear you all ask, \"has been going on in the crazy, mixed-up world of Perl 6 design and development?\" Read this summary...",
      "url" : "https://www.perl.com/pub/2005/04/p6pdigest/20050428",
      "url_path" : "/pub/2005/04/p6pdigest/20050428",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1115020800
   },
   {
      "url" : "https://www.perl.com/pub/2005/04/28/bdfoy",
      "epoch" : 1114675200,
      "url_path" : "/pub/2005/04/28/bdfoy",
      "authors" : [
         "chromatic"
      ],
      "title" : "People Behind Perl: brian d foy",
      "tags" : [
         "brian-d-foy",
         "japh",
         "people-behind-perl",
         "perl-hackers",
         "the-perl-review"
      ],
      "categories" : "community",
      "description" : "An interview with long-time Perl programmer and author, brian d foy. His book Mastering Perl recently came out in its second edition."
   },
   {
      "authors" : [
         "matt-fowles"
      ],
      "url_path" : "/pub/2005/04/p6pdigest/20050421",
      "epoch" : 1114070400,
      "url" : "https://www.perl.com/pub/2005/04/p6pdigest/20050421",
      "description" : " All~ Sadly, a slip of the mouse caused me to delete a partially completed summary, so I am going to push ahead on the rewrite without a witty intro. Feel free to make one up for yourself involving stuffed...",
      "categories" : "perl-6",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6",
         "pugs",
         "vm-development"
      ],
      "title" : "This Week in Perl 6, April 12 - 19, 2005"
   },
   {
      "authors" : [
         "henry-wasserman"
      ],
      "url_path" : "/pub/2005/04/21/win32ole",
      "epoch" : 1114070400,
      "url" : "https://www.perl.com/pub/2005/04/21/win32ole",
      "categories" : "windows",
      "description" : " Getting My Feet Wet My first glimpse of the Internet happened at Lotus Development somewhere around 1994. A Mosaic demonstration duly impressed me. A few months later, working at a small Cambridge, MA company called Dataware brought me closer...",
      "tags" : [
         "ie-automation",
         "perl-and-com",
         "perl-ole",
         "win32-ole",
         "windows-automation"
      ],
      "title" : "Automating Windows Applications with Win32::OLE"
   },
   {
      "description" : " Whoa! Deja vu! Where'd Matt go? Don't worry, Matt's still writing summaries. As you may have noticed, Matt's been writing summaries every two weeks. Now so am I. Because we love you, we've decided to arrange things so I...",
      "categories" : "perl-6",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6",
         "pugs",
         "vm-development"
      ],
      "title" : "This Week in Perl 6, April 4-11, 2005",
      "epoch" : 1113465600,
      "url_path" : "/pub/2005/04/p6pdigest/20050410",
      "authors" : [
         "piers-cawley"
      ],
      "url" : "https://www.perl.com/pub/2005/04/p6pdigest/20050410"
   },
   {
      "tags" : [
         "compatibility",
         "cpan",
         "cpan-modules",
         "cross-platform",
         "perl-modules",
         "perl-porting",
         "writing-open-source-perl-code"
      ],
      "title" : "Building Good CPAN Modules",
      "categories" : "cpan",
      "description" : " When you are planning to release a module to CPAN, one of your first tasks is figure out what OS, Perl version(s), and other environments you will and will not support. Often, the answers will come from what you...",
      "url" : "https://www.perl.com/pub/2005/04/14/cpan/guidelines",
      "epoch" : 1113465600,
      "authors" : [
         "rob-kinyon"
      ],
      "url_path" : "/pub/2005/04/14/cpan/guidelines"
   },
   {
      "url" : "https://www.perl.com/pub/2005/04/07/mockobject/kata",
      "authors" : [
         "stevan-little"
      ],
      "url_path" : "/pub/2005/04/07/mockobject/kata",
      "epoch" : 1112860800,
      "tags" : [
         "mock-objects",
         "perl-code-kata",
         "perl-exercises",
         "perl-test-kata",
         "perl-testing",
         "test-mockobject"
      ],
      "title" : "Perl Code Kata: Mocking Objects",
      "description" : " The last Perl Code Kata was on DBD::Mock, a mock DBI driver which is useful for testing Perl DBI applications. This Kata delves once again into the world of mock objects, this time using the more general Test::MockObject module....",
      "categories" : "testing"
   },
   {
      "categories" : "perl-6",
      "description" : " Perl 6 Language ceil and floor Ingo Blechschmidt wondered if ceil and floor would be in the core. Warnock applies, although Unicode operators would let me define circumfix \\lfloor \\rfloor (although I only know how to make those symbols...",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6",
         "pugs",
         "vm-development"
      ],
      "title" : "This Fortnight in Perl 6, March 22 - April 3, 2005",
      "epoch" : 1112860800,
      "authors" : [
         "matt-fowles"
      ],
      "url_path" : "/pub/2005/04/p6pdigest/20050403",
      "url" : "https://www.perl.com/pub/2005/04/p6pdigest/20050403"
   },
   {
      "epoch" : 1112256000,
      "url_path" : "/pub/2005/03/31/lightning2",
      "authors" : [
         "chromatic",
         "bob-ducharme",
         "shlomi-fish",
         "mark-leighton-fisher"
      ],
      "url" : "https://www.perl.com/pub/2005/03/31/lightning2",
      "categories" : "development",
      "description" : "Customize Emacs with Perl, debug your programs with line tracing, mock the DBI for testing, and manage buffering effectively-four short articles for Perl programmers.",
      "title" : "More Lightning Articles",
      "tags" : [
         "devel-linetrace",
         "emacs-and-perl",
         "emacs-customization",
         "lightning-articles",
         "mock-database",
         "buffering",
         "debugging",
         "test-mockdbi",
         "screen-io"
      ]
   },
   {
      "epoch" : 1111651200,
      "url_path" : "/pub/2005/03/p6pdigest/20050321",
      "authors" : [
         "matt-fowles"
      ],
      "url" : "https://www.perl.com/pub/2005/03/p6pdigest/20050321",
      "categories" : "perl-6",
      "description" : " All~ Welcome to yet another fortnight's summary. I believe this is the highest volume I have ever seen the three lists at simultaneously. Hopefully they will keep it up, because they're doing good work. To aid the epic endeavor...",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6"
      ],
      "title" : "This Fortnight in Perl 6, March 7 - March 21, 2005"
   },
   {
      "description" : "Driving Windows DNS Server If you happen to manage a DNS server running on Windows 2000 or Windows 2003 with more than just a couple of dozen resource records on it, you've probably already hit the limits of the MMC...",
      "categories" : "windows",
      "tags" : [
         "dns-updates-with-perl",
         "dnscmd",
         "windows-automation"
      ],
      "title" : "Automating Windows (DNS) with Perl",
      "epoch" : 1111651200,
      "url_path" : "/pub/2005/03/24/perl/dns",
      "authors" : [
         "thomas-herchenroeder"
      ],
      "url" : "https://www.perl.com/pub/2005/03/24/perl/dns"
   },
   {
      "title" : "Symbol Table Manipulation",
      "tags" : [
         "dynamic-variable-names",
         "global-variables",
         "no-strict",
         "symbol-tables",
         "symbolic-references"
      ],
      "categories" : "data",
      "description" : " Having almost achieved the state of perfect laziness, one of my favorite modules is Class::DBI::mysql. It makes MySQL database tables seem like classes, and their rows like objects. This completely relieves me from using SQL in most cases. This...",
      "url" : "https://www.perl.com/pub/2005/03/17/symtables",
      "epoch" : 1111046400,
      "authors" : [
         "phil-crow"
      ],
      "url_path" : "/pub/2005/03/17/symtables"
   },
   {
      "epoch" : 1110441600,
      "authors" : [
         "matt-fowles"
      ],
      "url_path" : "/pub/2005/03/p6pdigest/20050307",
      "url" : "https://www.perl.com/pub/2005/03/p6pdigest/20050307",
      "categories" : "perl-6",
      "description" : " All~ Welcome to yet another fortnight summary, once again brought to you by chocolate chips. This does have the distinction of being the first summary written on a Mac, so if I break into random swear words, just bear...",
      "title" : "This Fortnight in Perl 6, Feb. 23 - March 7, 2005",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6"
      ]
   },
   {
      "authors" : [
         "chromatic"
      ],
      "url_path" : "/pub/2005/03/03/pugs/interview",
      "epoch" : 1109836800,
      "url" : "https://www.perl.com/pub/2005/03/03/pugs/interview",
      "categories" : "perl-6",
      "description" : "Autrijus Tang, creator of the Pugs Perl 6 implementation, explains how this project may bring Perl 6 to fruition.",
      "tags" : [
         "perl6",
         "autrijus-tang",
         "camelfolk",
         "haskell",
         "lambdafolk",
         "language-implementation",
         "parsec",
         "perl-6",
         "pugs"
      ],
      "title" : "A Plan for Pugs"
   },
   {
      "authors" : [
         "matt-fowles"
      ],
      "url_path" : "/pub/2005/02/p6pdigest/20050222",
      "epoch" : 1109232000,
      "url" : "https://www.perl.com/pub/2005/02/p6pdigest/20050222",
      "categories" : "perl-6",
      "description" : " Welcome to yet another fortnight summary. Lately, p6l has outstripped p6i in volume. While this used to be the norm, it has become a rare occurrence. Strange. Anyway, this summary would be brought to you by cookies, but I...",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6"
      ],
      "title" : "This Fortnight in Perl 6, Feb. 9-22, 2005"
   },
   {
      "title" : "Perl and Mandrakelinux",
      "tags" : [
         "mandrakelinux",
         "apps",
         "graphics",
         "pumpking"
      ],
      "categories" : "linux",
      "description" : " Perl programmers have a special reason for choosing Mandrakelinux as their desktop operating system. Mandrakelinux uses Perl for dozens of the graphical \"value added\" utilities included with the distribution, including much of the Mandrakelinux Control Center. I asked Mandrakelinux...",
      "url" : "https://www.perl.com/pub/2005/02/24/mandrakelinux",
      "authors" : [
         "mark-stosberg"
      ],
      "url_path" : "/pub/2005/02/24/mandrakelinux",
      "epoch" : 1109232000
   },
   {
      "title" : "Building a 3D Engine in Perl, Part 3",
      "tags" : [
         "opengl-lighting",
         "opengl-tutorial",
         "opengl-viewpoint",
         "perl-3d",
         "perl-game-programming",
         "perl-graphics",
         "perl-opengl",
         "perl-sdl"
      ],
      "description" : " This article is the third in a series aimed at building a full 3D engine in Perl. The first article started with basic program structure and worked up to displaying a simple depth-buffered scene in an OpenGL window. The...",
      "categories" : "games",
      "url" : "https://www.perl.com/pub/2005/02/17/3d/engine",
      "url_path" : "/pub/2005/02/17/3d/engine",
      "authors" : [
         "geoff-broadwell"
      ],
      "epoch" : 1108627200
   },
   {
      "categories" : "data",
      "description" : " Testing code that uses a database can be tricky. The most common solution is to set up a test database with test data and run your tests against this. This, of course, requires bookkeeping code to keep your test...",
      "tags" : [
         "database-testing",
         "dbd-mock",
         "dbi-testing",
         "perl-code-kata",
         "perl-exercises",
         "perl-test-kata",
         "perl-testing"
      ],
      "title" : "Perl Code Kata: Testing Databases",
      "epoch" : 1108022400,
      "url_path" : "/pub/2005/02/10/database/kata",
      "authors" : [
         "stevan-little"
      ],
      "url" : "https://www.perl.com/pub/2005/02/10/database/kata"
   },
   {
      "description" : " All~ Welcome to yet another summary in which I will undoubtedly confuse two homophones - probably more than a few this week as I am a little tired. But perhaps the alien on my window or the vampire on...",
      "categories" : "perl-6",
      "title" : "This Week in Perl 6, Feb. 1 - 8, 2005",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6"
      ],
      "epoch" : 1108022400,
      "url_path" : "/pub/2005/02/p6pdigest/20050208",
      "authors" : [
         "matt-fowles"
      ],
      "url" : "https://www.perl.com/pub/2005/02/p6pdigest/20050208"
   },
   {
      "url" : "https://www.perl.com/pub/2005/02/03/rpc/design",
      "url_path" : "/pub/2005/02/03/rpc/design",
      "authors" : [
         "vladi-belperchinov-shabanski"
      ],
      "epoch" : 1107417600,
      "title" : "Throwing Shapes",
      "tags" : [
         "algorithm-floodcontrol",
         "event-processing",
         "flood-control",
         "communications"
      ],
      "description" : " Sometimes data processing is better when separated into different processes that may run on the same machine or even on different ones. This is the well-known client-server technique. You can do it using a known protocol (such as http)...",
      "categories" : "community"
   },
   {
      "categories" : "perl-6",
      "description" : " All~ Welcome to another double feature summary. Sadly, this one was delayed because of an argument that I was/am having with my connection. Fortunately, a generous neighbor has allowed me to use his connection for the time being. So,...",
      "title" : "This Fortnight in Perl 6, Jan. 19-31, 2005",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6"
      ],
      "epoch" : 1107417600,
      "authors" : [
         "matt-fowles"
      ],
      "url_path" : "/pub/2005/02/p6pdigest/2005031",
      "url" : "https://www.perl.com/pub/2005/02/p6pdigest/2005031"
   },
   {
      "description" : "Welcome to yet another Perl Summary brought to you by music and pizza (although the pizza is late in arriving). Like many summaries before it, we start with an attempt at non sequitur and Perl 6 Language. Perl 6 Language...",
      "categories" : "perl-6",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6"
      ],
      "title" : "This Week in Perl 6, Jan. 11-18, 2005",
      "epoch" : 1106208000,
      "authors" : [
         "matt-fowles"
      ],
      "url_path" : "/pub/2005/01/p6pdigest/20050118",
      "url" : "https://www.perl.com/pub/2005/01/p6pdigest/20050118"
   },
   {
      "categories" : "community",
      "description" : "Imagine a city protected by a small army of soldiers. The city's future growth requires a larger force; so a few determined lieutenants go to nearby towns and enlist aid from their police departments. These forces will come to the...",
      "tags" : [
         "cpan-tests",
         "hoplies",
         "perl-mongers-projects",
         "perl-qa",
         "perl-testing",
         "phalanx",
         "ponie"
      ],
      "title" : "The Phalanx Project",
      "epoch" : 1106208000,
      "url_path" : "/pub/2005/01/13/phalanx",
      "authors" : [
         "andy-lester"
      ],
      "url" : "https://www.perl.com/pub/2005/01/13/phalanx"
   },
   {
      "url" : "https://www.perl.com/pub/2005/01/13/quality/assurance",
      "url_path" : "/pub/2005/01/13/quality/assurance",
      "authors" : [
         "tom-mctighe"
      ],
      "epoch" : 1105603200,
      "tags" : [
         "automated-testing",
         "qa",
         "testing",
         "quality-assurance",
         "software-quality",
         "test-plans",
         "test-specifications",
         "bug-trackingreporting"
      ],
      "title" : "An Introduction to Quality Assurance",
      "categories" : "debugging",
      "description" : " On Being Wrong When I decided to study computer science, I installed Linux on my computer and bought a copy of \"The C Programming Language\" by Kernighan and Ritchie. I have been trying to solve software problems ever since...."
   },
   {
      "title" : "This Week in Perl 6, January 03 - January 11, 2005",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6"
      ],
      "description" : "Welcome to another Perl 6 summary. This summary explores such thrilling issues as multi-dimensional slices of Chinese food. After all, the amount of sauce any piece of Chinese food can absorb is proportional to its surface area, which is a...",
      "categories" : "perl-6",
      "url" : "https://www.perl.com/pub/2005/01/p6pdigest/20050111",
      "epoch" : 1105603200,
      "url_path" : "/pub/2005/01/p6pdigest/20050111",
      "authors" : [
         "matt-fowles"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2005/01/p6pdigest/20051231",
      "epoch" : 1104998400,
      "url_path" : "/pub/2005/01/p6pdigest/20051231",
      "authors" : [
         "matt-fowles"
      ],
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6"
      ],
      "title" : "This Fortnight in Perl 6, December 21 - 31 2004",
      "description" : "All~ Welcome to a New Year of Perl 6 Summaries. I have been doing biweekly summaries over the holiday season, but I plan on returning to weekly ones now. Hopefully \"World of Warcraft\" won't prevent me, we shall see. But...",
      "categories" : "perl-6"
   },
   {
      "epoch" : 1104998400,
      "url_path" : "/pub/2005/01/06/bricolage/configuration",
      "authors" : [
         "david-wheeler"
      ],
      "url" : "https://www.perl.com/pub/2005/01/06/bricolage/configuration",
      "description" : " In my previous article, I provided a guided tour of the Bricolage installation process. If you followed along, you should now have a nice, functioning installation of Bricolage 1.8 all ready to go. But as Mr. Popeil used to...",
      "categories" : "web",
      "title" : "Bricolage Configuration Directives",
      "tags" : [
         "bricolage",
         "bricolage-configuration",
         "bricolage-directives",
         "cms",
         "content-management",
         "cpan-installation",
         "mod-perl-installation",
         "web-management"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2004/12/p6pdigest/20041227",
      "epoch" : 1104307200,
      "authors" : [
         "matt-fowles"
      ],
      "url_path" : "/pub/2004/12/p6pdigest/20041227",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6"
      ],
      "title" : "This Fortnight in Perl 6, December 7-20 2004",
      "categories" : "perl-6",
      "description" : " All~ The observant among you might notice that I missed last week's summary. With the hubbub and confusion of the holidays, I blame ninjas, in particular Ryu Hyabusa. Given that Christmas is next weekend and New Years is the..."
   },
   {
      "url" : "https://www.perl.com/pub/2004/12/29/3d/engine",
      "epoch" : 1104307200,
      "url_path" : "/pub/2004/12/29/3d/engine",
      "authors" : [
         "geoff-broadwell"
      ],
      "tags" : [
         "geoff-broadwell",
         "opengl-tutorial",
         "perl-3d",
         "perl-game-programming",
         "perl-graphics",
         "perl-opengl",
         "perl-sdl"
      ],
      "title" : "Building a 3D Engine in Perl, Part 2",
      "categories" : "games",
      "description" : " This article is the second in a series aimed at building a full 3D engine in Perl. The first article, Building a 3D Engine in Perl, covered basic program structure, opening an OpenGL window using SDL, basic projection and..."
   },
   {
      "url" : "https://www.perl.com/pub/2004/12/22/mod/parrot",
      "url_path" : "/pub/2004/12/22/mod/parrot",
      "authors" : [
         "jeff-horwitz"
      ],
      "epoch" : 1103702400,
      "title" : "Introducing mod_parrot",
      "tags" : [
         "apache-modules",
         "mod-parrot",
         "mod-perl",
         "parrot",
         "perl-6"
      ],
      "description" : " It's been almost nine years since the first release of mod_perl, and it remains a very powerful tool for writing web applications and extending the capabilities of the Apache web server. However, lurking around the corner is Perl 6,...",
      "categories" : "perl-6"
   },
   {
      "url" : "https://www.perl.com/pub/2004/12/16/import/kata",
      "epoch" : 1103184000,
      "url_path" : "/pub/2004/12/16/import/kata",
      "authors" : [
         "chromatic"
      ],
      "tags" : [
         "code-kata",
         "exporting",
         "import",
         "perl-code-kata",
         "perl-exercises",
         "perl-modules",
         "perl-testing"
      ],
      "title" : "Perl Code Kata: Testing Imports",
      "description" : "Want to get better at Perl? This short exercise helps you understand how modules import symbols into namespaces.",
      "categories" : "testing"
   },
   {
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6"
      ],
      "title" : "This Fortnight in Perl 6, December 1 - 6 2004",
      "description" : " All~ Last week I asked for help identifying the source of a quotation. One friendly soul suggested Alan J. Perlis, but could not find an actual attribution. It did lead me to find a very applicable (and in my...",
      "categories" : "perl-6",
      "url" : "https://www.perl.com/pub/2004/12/p6pdigest/20041209",
      "epoch" : 1102579200,
      "authors" : [
         "matt-fowles"
      ],
      "url_path" : "/pub/2004/12/p6pdigest/20041209"
   },
   {
      "categories" : "community",
      "description" : " In the summer of 2001, the State University of New York at Buffalo (UB) hired a new Provost. She surveyed various school services and came up with a short list of must-do projects. Given the level of competition in...",
      "tags" : [
         "inline-java",
         "perl-billing",
         "perl-electronic-payment",
         "perl-evangelism",
         "perl-success-stories",
         "finance",
         "university-of-new-york-at-buffalo",
         "school"
      ],
      "title" : "The Evolution of ePayment Services at UB",
      "epoch" : 1102579200,
      "authors" : [
         "jim-brandt"
      ],
      "url_path" : "/pub/2004/12/09/epayment",
      "url" : "https://www.perl.com/pub/2004/12/09/epayment"
   },
   {
      "title" : "This Fortnight in Perl 6, November 16-30 2004",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6"
      ],
      "categories" : "perl-6",
      "description" : " All~ Welcome to yet another summary. Although Aliya is present for this summary, I think the unnamed gecko with its tongue out will be the one who is helping to bring it to you, aided of course by Nicola...",
      "url" : "https://www.perl.com/pub/2004/12/p6pdigest/20041202",
      "authors" : [
         "matt-fowles"
      ],
      "url_path" : "/pub/2004/12/p6pdigest/20041202",
      "epoch" : 1101974400
   },
   {
      "authors" : [
         "geoff-broadwell"
      ],
      "url_path" : "/pub/2004/12/01/3d/engine",
      "epoch" : 1101888000,
      "url" : "https://www.perl.com/pub/2004/12/01/3d/engine",
      "description" : " This article is the first in a series aimed at building a full 3D engine. It could be the underlying technology for a video game, the visualization system for a scientific application, the walkthrough program for an architectural design...",
      "categories" : "games",
      "tags" : [
         "geoff-broadwell",
         "opengl-tutorial",
         "perl-3d",
         "perl-game-programming",
         "perl-graphics",
         "perl-opengl",
         "perl-sdl"
      ],
      "title" : "Building a 3D Engine in Perl"
   },
   {
      "tags" : [
         "debugger-reference",
         "perl-debugger",
         "perl-debugger-pocket-reference",
         "perl-reference-card"
      ],
      "title" : "Perl Debugger Quick Reference",
      "description" : "Perl's debugger is powerful but somewhat esoteric. The core perldebtut tutorial is a good introduction, but who wants to skim through pages of documentation when you only need a quick refresher on the syntax of a command? Let this printable...",
      "categories" : "debugging",
      "url" : "https://www.perl.com/pub/2004/11/24/debugger/ref",
      "epoch" : 1101283200,
      "authors" : [
         "richard-foley"
      ],
      "url_path" : "/pub/2004/11/24/debugger/ref"
   },
   {
      "title" : "This Week in Perl 6, November 9 - 15 2004",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6"
      ],
      "description" : "All~ Welcome to yet another Monday summary. This would have been a Sunday summary, but Avernum (from Spiderweb Software) forcibly prevented it. As usual, we will start out with Perl 6 Language. Perl 6 Language Modules and Exports Aaron Sherman...",
      "categories" : "perl-6",
      "url" : "https://www.perl.com/pub/2004/11/p6pdigest/20041115",
      "epoch" : 1100764800,
      "url_path" : "/pub/2004/11/p6pdigest/20041115",
      "authors" : [
         "matt-fowles"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2004/11/18/mod/perlservice",
      "url_path" : "/pub/2004/11/18/mod/perlservice",
      "authors" : [
         "michael-collins"
      ],
      "epoch" : 1100764800,
      "tags" : [
         "michael-w-collins",
         "mod-perl",
         "perl-remoting",
         "perl-server",
         "networking-applications"
      ],
      "title" : "Cross-Language Remoting with mod_perlservice",
      "description" : "Mod_perlservice? What is That? Mod_perlservice is a cool, new way to do remoting - sharing data between server and client processes - with Perl and Apache. Let's start by breaking that crazy name apart: mod + perl + service. Mod...",
      "categories" : "networking"
   },
   {
      "categories" : "perl-6",
      "description" : " Welcome to yet another summary, brought to you (once again) with the aid of the musical stylings of Dar Williams and Soul Coughing and a small, stuffed elephant name Aliya. And, without further ado, I give you Perl 6...",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6"
      ],
      "title" : "This Week in Perl 6, November 2 - 8 2004",
      "epoch" : 1100160000,
      "authors" : [
         "matt-fowles"
      ],
      "url_path" : "/pub/2004/11/p6pdigest/20041108",
      "url" : "https://www.perl.com/pub/2004/11/p6pdigest/20041108"
   },
   {
      "authors" : [
         "vladi-belperchinov-shabanski"
      ],
      "url_path" : "/pub/2004/11/11/floodcontrol",
      "epoch" : 1100160000,
      "url" : "https://www.perl.com/pub/2004/11/11/floodcontrol",
      "categories" : "science",
      "description" : "Accordingly to Merriam-Webster Online, \"flood\" means: 1: a rising and overflowing of a body of water especially onto normally dry land; 2: an overwhelming quantity or volume. In computer software there are very similar situations when an unpredictable and irregular...",
      "title" : "Implementing Flood Control",
      "tags" : [
         "algorithm-floodcontrol",
         "event-processing",
         "flood-control",
         "networking-applications"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2004/11/04/komodo3",
      "epoch" : 1099555200,
      "authors" : [
         "jason-purdy"
      ],
      "url_path" : "/pub/2004/11/04/komodo3",
      "tags" : [
         "activestate",
         "komodo",
         "komodo-3-0",
         "perl-ide",
         "product-reviews"
      ],
      "title" : "Komodo 3.0 Review",
      "categories" : "tooling",
      "description" : "There are several different types of programmers, but I would wager that the vast majority are just like me: their mouse is a crucial input extension, and having an environment that supports the task at hand makes coding easier and,..."
   },
   {
      "title" : "This Fortnight on Perl 6, October 2004 Part Two",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6"
      ],
      "categories" : "perl-6",
      "description" : "Perl 6 Summary for 2004-10-18 through 2004-10-23 Last week, I received a request to summarize perl6-language before internals. Frankly, it seems like a reasonable idea. Perl6-internals has always been first as long as I can remember. So perhaps, it is...",
      "url" : "https://www.perl.com/pub/2004/11/p6pdigest/20041131",
      "url_path" : "/pub/2004/11/p6pdigest/20041131",
      "authors" : [
         "matt-fowles"
      ],
      "epoch" : 1099555200
   },
   {
      "epoch" : 1098950400,
      "authors" : [
         "david-wheeler"
      ],
      "url_path" : "/pub/2004/10/28/bricolage/installation",
      "url" : "https://www.perl.com/pub/2004/10/28/bricolage/installation",
      "categories" : "web",
      "description" : " Now that Content Management with Bricolage has piqued your interest, you might be wondering what you need to do to install it. I'll be the first to admit that installing Bricolage is not trivial, given that it requires several...",
      "title" : "Installing Bricolage",
      "tags" : [
         "bricolage",
         "cms",
         "content-management",
         "cpan-installation",
         "mod-perl-installation",
         "web-management"
      ]
   },
   {
      "epoch" : 1098950400,
      "url_path" : "/pub/2004/10/p6pdigest/20041017",
      "authors" : [
         "matt-fowles"
      ],
      "url" : "https://www.perl.com/pub/2004/10/p6pdigest/20041017",
      "categories" : "perl-6",
      "description" : "Perl 6 Summary for 2004-10-01 through 2004-10-17 All~ Welcome to my first summary. Since I am relatively new at this game, I will just steal Piers' approach and start with Perl6 internals. But before that let me warn you that...",
      "title" : "This Fortnight on Perl 6, October 2004",
      "tags" : [
         "compiler",
         "internals",
         "parrot",
         "perl-6"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2004/10/21/taint/testing/kata",
      "epoch" : 1098345600,
      "url_path" : "/pub/2004/10/21/taint/testing/kata",
      "authors" : [
         "chromatic"
      ],
      "title" : "Perl Code Kata: Testing Taint",
      "tags" : [
         "chromatic",
         "code-kata",
         "perl-code-kata",
         "perl-exercises",
         "perl-taint",
         "perl-testing"
      ],
      "categories" : "testing",
      "description" : "Perl's taint mode can help you avoid using untrusted input insecurely. Here's how to practice using it."
   },
   {
      "tags" : [
         "command-line-file-editing",
         "fmtyewtk",
         "perl-file-editing",
         "text-tools"
      ],
      "title" : "FMTYEWTK About Mass Edits In Perl",
      "categories" : "tooling",
      "description" : "For those not used to the terminology, FMTYEWTK stands for Far More Than You Ever Wanted To Know. This one is fairly light as FMTYEWTKs usually go. In any case, the question before us is, \"How do you apply an...",
      "url" : "https://www.perl.com/pub/2004/10/14/file/editing",
      "authors" : [
         "geoff-broadwell"
      ],
      "url_path" : "/pub/2004/10/14/file/editing",
      "epoch" : 1097740800
   },
   {
      "tags" : [
         "code-reviews",
         "good-perl-code",
         "luck-schubert",
         "math-complex",
         "reading-code"
      ],
      "title" : "Why Review Code?",
      "description" : "Richard Gabriel of Sun Microsystems suggests that beginning programmers should study the source code for great works of software as part of a Master of Fine Arts course in software. Prominent Extreme Programmers talk about finding the Quality Without a...",
      "categories" : "development",
      "url" : "https://www.perl.com/pub/2004/10/07/code/reviews",
      "url_path" : "/pub/2004/10/07/code/reviews",
      "authors" : [
         "luke-schubert"
      ],
      "epoch" : 1097136000
   },
   {
      "categories" : "web",
      "description" : "SOAP has great hype; portable, simple, efficient, flexible, and open, SOAP has it all. According to many intelligent people, writing a web service with SOAP should be a snap, and the results will speak for themselves. So they do, although...",
      "tags" : [
         "bricolage",
         "krang",
         "perl-soap",
         "perl-xml",
         "remote-apis",
         "soap",
         "web-services",
         "http"
      ],
      "title" : "Don't Be Afraid to Drop the SOAP",
      "epoch" : 1096531200,
      "authors" : [
         "sam-tregar"
      ],
      "url_path" : "/pub/2004/09/30/drop/the/soap",
      "url" : "https://www.perl.com/pub/2004/09/30/drop/the/soap"
   },
   {
      "title" : "This Week on Perl 6, Week Ending 2004-09-24",
      "tags" : [
         "internals",
         "parrot",
         "perl-6"
      ],
      "categories" : "perl-6",
      "description" : "The Perl 6 Summary for the week ending 2004-09-24 This is my last summary before I start my teaching practice. Hopefully I've things set up so writing the summary isn't going to interfere with that, and vice versa. This week...",
      "url" : "https://www.perl.com/pub/2004/09/p6pdigest/20040926",
      "epoch" : 1096358400,
      "url_path" : "/pub/2004/09/p6pdigest/20040926",
      "authors" : [
         "piers-cawley"
      ]
   },
   {
      "epoch" : 1095926400,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2004/09/p6pdigest/20040917",
      "url" : "https://www.perl.com/pub/2004/09/p6pdigest/20040917",
      "description" : " Another week, another summary, and I'm running late. So: This week in perl6-compiler The current state of the compiler Discussion of the current state of the nascent perl 6 compiler and how best to contribute to its development even...",
      "categories" : "perl-6",
      "title" : "This Week on Perl 6, Week Ending 2004-09-17",
      "tags" : [
         "internals",
         "parrot",
         "perl-6"
      ]
   },
   {
      "title" : "Building a Finite State Machine Using DFA::Simple",
      "tags" : [
         "cpan-modules",
         "dfa-simple",
         "dfas",
         "finite-state-machines",
         "fsms",
         "state-machine"
      ],
      "categories" : "development",
      "description" : " I am converting some articles from MS Word to HTML by hand. I often use bulleted outlines so I face a lot of work creating lists with nested sub-lists. It didn't take opening and closing many &lt;ul&gt; and &lt;li&gt;...",
      "url" : "https://www.perl.com/pub/2004/09/23/fsms",
      "epoch" : 1095926400,
      "url_path" : "/pub/2004/09/23/fsms",
      "authors" : [
         "bill-ruppert"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2004/09/12/embedded",
      "epoch" : 1095321600,
      "url_path" : "/pub/2004/09/12/embedded",
      "authors" : [
         "philipp-janert"
      ],
      "tags" : [
         "berkeleydb",
         "perl-databases",
         "perl-dbi",
         "phillip-janert",
         "sqlite",
         "tie-file"
      ],
      "title" : "Embedded Databases",
      "categories" : "data",
      "description" : " The expression \"Embedded Database\" requires an explanation. A \"database\" is an application that allows the targeted retrieval of stored data - a log-file is not a database. By \"embedded\" I mean a database that does not run in a..."
   },
   {
      "url" : "https://www.perl.com/pub/2004/09/p6pdigest/20040910",
      "url_path" : "/pub/2004/09/p6pdigest/20040910",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1095321600,
      "title" : "This Week on Perl 6, Week Ending 2004-09-10",
      "tags" : [
         "internals",
         "parrot",
         "perl-6"
      ],
      "description" : "This week on perl6-compiler Yes you read that right; development of the Perl 6 compiler now has its own mailing list. Hopefully, in the coming weeks, the current perl6-internals list will get renamed parrot-internals to reflect that split. As I...",
      "categories" : "perl-6"
   },
   {
      "tags" : [
         "internals",
         "parrot",
         "perl-6"
      ],
      "title" : "This Week on Perl 6, Week Ending 2004-09-03",
      "categories" : "perl-6",
      "description" : " Another week, a free weekend, and still I haven't started writing the summary until Monday. Still, I don't actually start at college 'til next week, so that's all right then. We start with perl6-internals. Compile op with return values...",
      "url" : "https://www.perl.com/pub/2004/09/p6pdigest/20040903",
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2004/09/p6pdigest/20040903",
      "epoch" : 1094716800
   },
   {
      "url" : "https://www.perl.com/pub/2004/09/09/lightning",
      "epoch" : 1094716800,
      "url_path" : "/pub/2004/09/09/lightning",
      "authors" : [
         "simon-cozens",
         "mark-fowler",
         "ricardo-signes",
         "aaron-trevena"
      ],
      "title" : "Lightning Articles",
      "tags" : [],
      "categories" : "development",
      "description" : " Simon Cozens Serendipity - it means those occasions when things come together to give you moments of inspiration. While preparing perl.com one week, I was editing an article on how to give lightning talks by Mark Fowler and at..."
   },
   {
      "url" : "https://www.perl.com/pub/2004/08/31/livecode",
      "epoch" : 1093939200,
      "url_path" : "/pub/2004/08/31/livecode",
      "authors" : [
         "alex-mclean"
      ],
      "title" : "Hacking Perl in Nightclubs",
      "tags" : [],
      "description" : " I've found the experiences of dancing and programming to have a great deal in common. With both I am immersed in an abstract world of animated structures, building up and breaking down many times before finally reaching a conclusion....",
      "categories" : "security"
   },
   {
      "description" : " If you've ever had to manage a web site with tens of thousands of pages of content where many people need to be able to update that content, you've no doubt recognized the need for a content management system...",
      "categories" : "web",
      "title" : "Content Management with Bricolage",
      "tags" : [
         "bricolage",
         "cms",
         "content-management",
         "web-management"
      ],
      "url_path" : "/pub/2004/08/27/bricolage",
      "authors" : [
         "david-wheeler"
      ],
      "epoch" : 1093593600,
      "url" : "https://www.perl.com/pub/2004/08/27/bricolage"
   },
   {
      "tags" : [
         "internals",
         "parrot",
         "perl-6"
      ],
      "title" : "This Week on Perl 6, Week Ending 2004-08-20",
      "description" : " The Perl 6 Summary for the fortnight ending 2004-08-20 Harrumph. Note to self; never miss a week when you could actually have written the summary. I lulled myself into a false sense of security with the quiet week for...",
      "categories" : "perl-6",
      "url" : "https://www.perl.com/pub/2004/08/p6pdigest/20040820",
      "epoch" : 1093507200,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2004/08/p6pdigest/20040820"
   },
   {
      "description" : " Note: All comments in square brackets are X screensavers that I ran for my slides. If you want to play along at home, start up xscreensaver-demo and click on the screensaver named. By the way, for any screensaver that...",
      "categories" : "community",
      "tags" : [
         "larry-wall",
         "perl",
         "perl-5",
         "perl-6",
         "state-of-the-onion",
         "tpc",
         "language-development"
      ],
      "title" : "The State of the Onion",
      "epoch" : 1092902400,
      "authors" : [
         "larry-wall"
      ],
      "url_path" : "/pub/2004/08/18/onion",
      "url" : "https://www.perl.com/pub/2004/08/18/onion"
   },
   {
      "url" : "https://www.perl.com/pub/2004/08/09/commandline",
      "authors" : [
         "dave-cross"
      ],
      "url_path" : "/pub/2004/08/09/commandline",
      "epoch" : 1092124800,
      "tags" : [],
      "title" : "Perl Command-Line Options",
      "categories" : "tooling",
      "description" : " Perl has a large number of command-line options that can help to make your programs more concise and open up many new possibilities for one-off command-line scripts using Perl. In this article we'll look at some of the most..."
   },
   {
      "categories" : "perl-6",
      "description" : " As I threatened last week, I'm moving the rollover point for these summaries from midnight on Sunday/Monday to midnight on Friday/Saturday, but rather than do it in one swell foop, I'm doing a couple of six-day weeks. The theory...",
      "tags" : [
         "internals",
         "parrot",
         "perl-6"
      ],
      "title" : "This Week on Perl 6, Week Ending 2004-07-31",
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2004/07/p6pdigest/20040731",
      "epoch" : 1091779200,
      "url" : "https://www.perl.com/pub/2004/07/p6pdigest/20040731"
   },
   {
      "description" : " After the keynotes, the most popular sessions at most Perl conferences tend to be the lightning talks. Each session consists of about 10 to 15 lightning talks &mdash; talks typically lasting individually no more than five minutes &mdash; back...",
      "categories" : "community",
      "tags" : [
         "lightning-talk",
         "oscon",
         "yapc"
      ],
      "title" : "Giving Lightning Talks",
      "url_path" : "/pub/2004/07/30/lightningtalk",
      "authors" : [
         "mark-fowler"
      ],
      "epoch" : 1091174400,
      "url" : "https://www.perl.com/pub/2004/07/30/lightningtalk"
   },
   {
      "title" : "This Week on Perl 6, Week Ending 2004-07-18",
      "tags" : [
         "internals",
         "parrot",
         "perl-6"
      ],
      "categories" : "perl-6",
      "description" : " Following last week's bizarrely dated summary (I misplaced a day) we're back with the correct week-ending date, but I'm ashamed to admit that I've slipped to writing on a Tuesday again. My head hangs in shame and I am...",
      "url" : "https://www.perl.com/pub/2004/07/p6pdigest/20040718",
      "epoch" : 1090569600,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2004/07/p6pdigest/20040718"
   },
   {
      "title" : "Building Applications with POE",
      "tags" : [
         "event-driven",
         "poe"
      ],
      "description" : " Earlier, we talked about the fundamental principles of application design with POE. Now it's time to put my money where my mouth is and build some actual working code. To make life a bit easier, let's lay out a...",
      "categories" : "development",
      "url" : "https://www.perl.com/pub/2004/07/22/poe",
      "epoch" : 1090569600,
      "url_path" : "/pub/2004/07/22/poe",
      "authors" : [
         "matt-cashner"
      ]
   },
   {
      "authors" : [
         "jouke-visser"
      ],
      "url_path" : "/pub/2004/07/14/accessibility",
      "epoch" : 1089878400,
      "url" : "https://www.perl.com/pub/2004/07/14/accessibility",
      "description" : " Last year Perl.com published an article about pVoice. You learned what pVoice is, why it was built, and where it was supposed to go. Maybe you wanted to do something for disabled people yourself, by writing something like a...",
      "categories" : "graphics",
      "tags" : [
         "accessible",
         "disabled",
         "pvoice"
      ],
      "title" : "Accessible Software"
   },
   {
      "title" : "Autopilots in Perl",
      "tags" : [
         "flight-simulator",
         "x-plane",
         "xplane"
      ],
      "categories" : "games",
      "description" : " X-Plane is an ultra-realistic flight simulator used by aviation pioneers like Burt Rutan, who uses it in his simulator for SpaceShipOne. The latest revision sports a flight model so accurate that the FAA has decided that your time spent...",
      "url" : "https://www.perl.com/pub/2004/07/09/xplane",
      "epoch" : 1089619200,
      "authors" : [
         "jeffrey-goff"
      ],
      "url_path" : "/pub/2004/07/09/xplane"
   },
   {
      "title" : "This Week on Perl 6, Week Ending 2004-07-04",
      "tags" : [
         "internals",
         "parrot",
         "perl-6"
      ],
      "categories" : "perl-6",
      "description" : " Another week, another Perl 6 Summary. This is becoming a habit. Let's do perl6-internals first, shall we? Japhy's Perl 6 Rules Parser Last week Jeff 'Japhy' Pinyan announced that he'd be working on a Perl 6 rules parser once...",
      "url" : "https://www.perl.com/pub/2004/07/p6pdigest/20040704",
      "epoch" : 1089360000,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2004/07/p6pdigest/20040704"
   },
   {
      "tags" : [
         "poe",
         "session",
         "thread"
      ],
      "title" : "Application Design with POE",
      "description" : " Day in and day out, I write large applications in perl. I'm cursed I tell you. While large scale, long-running applications in pure perl may sound fairly easy to write, they are not. Perl, beyond a certain size and...",
      "categories" : "development",
      "url" : "https://www.perl.com/pub/2004/07/02/poeintro",
      "url_path" : "/pub/2004/07/02/poeintro",
      "authors" : [
         "matt-cashner"
      ],
      "epoch" : 1088755200
   },
   {
      "url" : "https://www.perl.com/pub/2004/07/p6pdigest/20040702",
      "url_path" : "/pub/2004/07/p6pdigest/20040702",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1088755200,
      "tags" : [
         "internals",
         "parrot",
         "perl-6"
      ],
      "title" : "This Week on Perl 6, Week Ending 2004-06-27",
      "description" : " What's this? No! It can't be! It's a weekly Perl 6 Summary. What is the world coming to? Sorry, I can't answer that one, so I'll tell you what's been happening this week in perl6-internals. Bignums, licenses, pie As...",
      "categories" : "perl-6"
   },
   {
      "categories" : "development",
      "description" : "Update: Perl Profiling has evolved since this article was written, please see http://www.perl.org/about/whitepapers/perl-profiling.html for the latest information. Everyone wants their Perl code to run faster. Unfortunately, without understanding why the code is taking so long to start with, it's impossible...",
      "title" : "Profiling Perl",
      "tags" : [
         "optimization",
         "profiler",
         "profiling",
         "speed"
      ],
      "epoch" : 1088064000,
      "url_path" : "/pub/2004/06/25/profiling",
      "authors" : [
         "simon-cozens"
      ],
      "url" : "https://www.perl.com/pub/2004/06/25/profiling"
   },
   {
      "url" : "https://www.perl.com/pub/2004/06/p6pdigest/20040621",
      "epoch" : 1088064000,
      "url_path" : "/pub/2004/06/p6pdigest/20040621",
      "authors" : [
         "piers-cawley"
      ],
      "title" : "This Week on Perl 6, Fortnight Ending 2004-06-21",
      "tags" : [
         "internals",
         "parrot",
         "perl-6"
      ],
      "categories" : "perl-6",
      "description" : "Good evening. You find me typing away in a motel room on the edge of the Lake District on the shortest night of the year. I suppose, by rites, I should be spending the night by some stone circle drinking,..."
   },
   {
      "categories" : "data",
      "description" : " One of the best ways to make your Perl code look more like ... well, like Perl code - and not like C or BASIC or whatever you used before you were introduced to Perl - is to get...",
      "title" : "Perl's Special Variables",
      "tags" : [
         "file-handling",
         "variables"
      ],
      "url_path" : "/pub/2004/06/18/variables",
      "authors" : [
         "dave-cross"
      ],
      "epoch" : 1087545600,
      "url" : "https://www.perl.com/pub/2004/06/18/variables"
   },
   {
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2004/06/10/email",
      "epoch" : 1086854400,
      "url" : "https://www.perl.com/pub/2004/06/10/email",
      "description" : " I spend the vast majority of my time at a computer working with email, whether it's working through the ones I send and receive each day, or working on my interest in analyzing, indexing, organizing, and mining email content....",
      "categories" : "email",
      "title" : "The Evolution of Perl Email Handling",
      "tags" : [
         "email",
         "filtering",
         "mail",
         "spamassassin"
      ]
   },
   {
      "title" : "This Week on Perl 6, Fortnight Ending 2004-06-06",
      "tags" : [
         "internals",
         "parrot",
         "perl-6"
      ],
      "description" : " Whee! There's a new graphics card in the G5, which means I can type this at the big screen again, which makes me happy. Well, it would make me far happier if the new card didn't leave horrible artifacts...",
      "categories" : "perl-6",
      "url" : "https://www.perl.com/pub/2004/06/p6pdigest/20040606",
      "epoch" : 1086768000,
      "url_path" : "/pub/2004/06/p6pdigest/20040606",
      "authors" : [
         "piers-cawley"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2004/06/04/recorder",
      "url_path" : "/pub/2004/06/04/recorder",
      "authors" : [
         "linda-julien"
      ],
      "epoch" : 1086336000,
      "title" : "Web Testing with HTTP::Recorder",
      "tags" : [
         "proxy",
         "recorder",
         "testing",
         "web"
      ],
      "description" : " HTTP::Recorder is a browser-independent recorder that records interactions with web sites and produces scripts for automated playback. Recorder produces WWW::Mechanize scripts by default (see WWW::Mechanize by Andy Lester), but provides functionality to use your own custom logger. Why Use...",
      "categories" : "web"
   },
   {
      "url" : "https://www.perl.com/pub/2004/05/28/testing",
      "url_path" : "/pub/2004/05/28/testing",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 1085731200,
      "title" : "Return of Quiz of the Week",
      "tags" : [
         "qotw",
         "quiz",
         "recipes"
      ],
      "categories" : "community",
      "description" : "Recently, Perl trainer and former perl.com editor Mark-Jason Dominus revived his Quiz of the Week mailing list; every week, subscribers are sent a Perl task of either \"regular\" or \"expert\" level. There are no prizes, but the submitted solutions are..."
   },
   {
      "description" : " Yes. I know. This week's summary is a week late. So it's a summary of the last two weeks. So let's get straight to perl6-internals shall we? Working on the Perl 6 Compiler Abhijit A. Mahabal posted his first...",
      "categories" : "perl-6",
      "tags" : [
         "internals",
         "parrot",
         "perl-6"
      ],
      "title" : "This Week on Perl 6, Week Ending 2004-05-23",
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2004/05/p6pdigest/20040523",
      "epoch" : 1085644800,
      "url" : "https://www.perl.com/pub/2004/05/p6pdigest/20040523"
   },
   {
      "url" : "https://www.perl.com/pub/2004/05/19/allison",
      "epoch" : 1085126400,
      "url_path" : "/pub/2004/05/19/allison",
      "authors" : [
         "simon-cozens"
      ],
      "tags" : [
         "allison-randal",
         "perl-foundation",
         "tpf"
      ],
      "title" : "An Interview with Allison Randal",
      "categories" : "community",
      "description" : " This week, perl.com has the pleasure of interviewing Allison Randal, one of the key figures in the Perl community. Allison has been active in the Perl 6 design process since its inception, and is the President of the Perl..."
   },
   {
      "epoch" : 1084521600,
      "url_path" : "/pub/2004/05/14/affrus",
      "authors" : [
         "simon-cozens"
      ],
      "url" : "https://www.perl.com/pub/2004/05/14/affrus",
      "description" : " When I last reviewed a Perl IDE, ActiveState's Komodo, I was nearly convinced; the only problem was that I use Mac OS X. Now, Late Night Software, more commonly known for their AppleScript tools, have taken their Mac programming...",
      "categories" : "tooling",
      "tags" : [
         "affrus",
         "ide",
         "komodo",
         "os-x-ide",
         "unix-editors"
      ],
      "title" : "Affrus: An OS X Perl IDE"
   },
   {
      "tags" : [
         "internals",
         "parrot",
         "perl-6"
      ],
      "title" : "This Week on Perl 6, Week Ending 2004-05-09",
      "description" : " Ooh look. Stuff's been happening in perl6-internals again. Will wonders never cease? Building NCI by default Bernhard Schmalhofer posted a patch to turn on building libnci.so by default so that the tests in t/pmc/nci.t would get run on more...",
      "categories" : "perl-6",
      "url" : "https://www.perl.com/pub/2004/05/p6pdigest/20040509",
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2004/05/p6pdigest/20040509",
      "epoch" : 1084521600
   },
   {
      "url_path" : "/pub/2004/05/p6pdigest/20040502",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1083916800,
      "url" : "https://www.perl.com/pub/2004/05/p6pdigest/20040502",
      "categories" : "perl-6",
      "description" : "So, May Day didn't quite knock me for six this year (but being up at 4am on Newcastle Town Moor on Saturday morning to welcome in the summer with a bunch of rapper dancers is guaranteed to leave a chap...",
      "title" : "This Week on Perl 6, Week Ending 2004-05-02",
      "tags" : [
         "internals",
         "parrot",
         "perl-6"
      ]
   },
   {
      "epoch" : 1083916800,
      "authors" : [
         "casey-west"
      ],
      "url_path" : "/pub/2004/05/07/testing",
      "url" : "https://www.perl.com/pub/2004/05/07/testing",
      "categories" : "testing",
      "description" : " Testing is an important step in developing any important body of work. In today's pragmatic culture, we're taught to test first, test often, and design with tests. The expectation is that chanting \"test test test\" forgives all sins. To...",
      "tags" : [
         "harness",
         "test",
         "testing"
      ],
      "title" : "Building Testing Libraries"
   },
   {
      "tags" : [
         "maypole",
         "mvc"
      ],
      "title" : "Rapid Web Application Deployment with Maypole : Part 2",
      "description" : " When we last left our intrepid web developer, he had successfully set up an online sales catalogue in 11 lines of code. Now, however, he has to move on to turning this into a sales site with a shopping...",
      "categories" : "web",
      "url" : "https://www.perl.com/pub/2004/04/29/maypole",
      "epoch" : 1083225600,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2004/04/29/maypole"
   },
   {
      "tags" : [
         "internals",
         "parrot",
         "perl-6"
      ],
      "title" : "This Week on Perl 6, Week Ending 2004-04-25",
      "categories" : "perl-6",
      "description" : " And we're back on a weekly schedule again (unless the Mayday bank holiday knocks me for six next week). As I expected, the Apocalypse has brought out a rash of prophets and prognosticators in perl6-language, but perl6-internals is still...",
      "url" : "https://www.perl.com/pub/2004/04/p6pdigest/20040425",
      "epoch" : 1083225600,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2004/04/p6pdigest/20040425"
   },
   {
      "url" : "https://www.perl.com/pub/2004/04/p6pdigest/20040418",
      "epoch" : 1082620800,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2004/04/p6pdigest/20040418",
      "tags" : [
         "internals",
         "parrot",
         "perl-6"
      ],
      "title" : "This Fortnight on Perl 6, Weeks Ending 2004-04-18",
      "description" : " The only problem with summarizing two week's worth of Perl 6 happenings is that there's twice as much stuff to summarize. Still, there's no way I could have made the time to write a summary last week so I'll...",
      "categories" : "perl-6"
   },
   {
      "url" : "https://www.perl.com/pub/2004/04/15/maypole",
      "url_path" : "/pub/2004/04/15/maypole",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 1082620800,
      "tags" : [
         "maypole",
         "mvc"
      ],
      "title" : "Rapid Web Application Deployment with Maypole",
      "categories" : "web",
      "description" : " You have a database. You have a web server. You have a deadline. Whether it's bringing up an e-commerce storefront for a new venture, implementing a new front-end to HR's employee database, or even providing a neat way to..."
   },
   {
      "title" : "Apocalypse 12",
      "tags" : [],
      "description" : " Editor's Note: this Apocalypse is out of date and remains here for historic reasons. See Synopsis 12 for the latest information. Some of the Problems with Perl 5 OO A little too orthogonal Not quite orthogonal enough Forced non-encapsulation...",
      "categories" : "perl-6",
      "url" : "https://www.perl.com/pub/2004/04/16/a12",
      "authors" : [
         "larry-wall"
      ],
      "url_path" : "/pub/2004/04/16/a12",
      "epoch" : 1082102400
   },
   {
      "description" : "Anyone who has used Perl for any length of time is familiar with the lookup hash, a handy idiom for doing existence tests",
      "categories" : "science",
      "tags" : [
         "bloom-filters",
         "bloom16",
         "loaf",
         "maciej-ceglowski",
         "set-membership",
         "text-bloom"
      ],
      "title" : "Using Bloom Filters",
      "epoch" : 1081411200,
      "url_path" : "/pub/2004/04/08/bloom/filters",
      "authors" : [
         "maciej-ceglowski"
      ],
      "url" : "https://www.perl.com/pub/2004/04/08/bloom/filters"
   },
   {
      "url_path" : "/pub/2004/04/p6pdigest/20040404",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1081065600,
      "url" : "https://www.perl.com/pub/2004/04/p6pdigest/20040404",
      "categories" : "perl-6",
      "description" : "Wednesday? Why did I leave it 'til Wednesday to write the summary? I must have some reason. Or maybe not. I'll give fair warning that I won't be doing a summary for next week though, what with Easter and everything,...",
      "tags" : [
         "internals",
         "parrot",
         "perl-6"
      ],
      "title" : "This week on Perl 6, week ending 2004-04-04"
   },
   {
      "authors" : [
         "casey-west"
      ],
      "url_path" : "/pub/2004/04/01/masongal",
      "epoch" : 1080806400,
      "url" : "https://www.perl.com/pub/2004/04/01/masongal",
      "description" : " Creating a photo gallery is usually considered a daunting task. Lots of people have tried it, not many have succeeded. One of the reasons for so many similar projects is that they don't often integrate well into an existing...",
      "categories" : "graphics",
      "title" : "Photo Galleries with Mason and Imager",
      "tags" : [
         "galleries",
         "imager",
         "mason"
      ]
   },
   {
      "epoch" : 1080460800,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2004/03/p6pdigest/20040328",
      "url" : "https://www.perl.com/pub/2004/03/p6pdigest/20040328",
      "categories" : "perl-6",
      "description" : " ... and we're back! Another interesting week in Perl 6. Your Summarizer even wrote some [parrot] code and it's been simply ages since he did that. In accordance with ancient custom, we'll start the summary with perl6-internals. Building with...",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2004-03-28"
   },
   {
      "authors" : [
         "sean-m-burke"
      ],
      "url_path" : "/pub/2004/03/25/dictionaries",
      "epoch" : 1080201600,
      "url" : "https://www.perl.com/pub/2004/03/25/dictionaries",
      "description" : " When you woke up this morning, the last thing you are likely to have thought is \"If only I had a dictionary!\" But there are thousands of languages on Earth that many people want to learn, but they can't,...",
      "categories" : "data",
      "tags" : [
         "dictionaries",
         "languages",
         "linguistics",
         "rtf",
         "lingua"
      ],
      "title" : "Making Dictionaries with Perl"
   },
   {
      "description" : " Spring is sprung, the Equinoctal gales seem to have blown themselves out, I'm a proud step grandfather and life is generally grand. \"So, what's been going on in perl6-internals?\" I hear you ask. Let's find out shall we? Parrot...",
      "categories" : "perl-6",
      "title" : "This week on Perl 6, week ending 2004-03-21",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2004/03/p6pdigest/20040321",
      "epoch" : 1079856000,
      "url" : "https://www.perl.com/pub/2004/03/p6pdigest/20040321"
   },
   {
      "categories" : "perl-6",
      "description" : "Operator Renaming Several operators have been given new names to increase clarity and better Huffman-code the language: -> becomes ., like the rest of the world uses. The string concatenation . becomes ~. Think of it as \"stitching\" the two...",
      "title" : "Synopsis 3",
      "tags" : [
         "operators",
         "perl-6",
         "synopsis"
      ],
      "epoch" : 1079596800,
      "url_path" : "/pub/2004/03/18/synopsis3",
      "authors" : [
         "luke-palmer"
      ],
      "url" : "https://www.perl.com/pub/2004/03/18/synopsis3"
   },
   {
      "categories" : "perl-6",
      "description" : " Another week, another summary. It's been a pretty active week so, with a cunningly mixed metaphor, we'll dive straight into the hive of activity that is perl6-internals. Benchmarking Discussion and development of Sebastien Riedel's nifty Parrot comparative benchmarking script...",
      "title" : "This week on Perl 6, week ending 2004-03-14",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "url_path" : "/pub/2004/03/p6pdigest/20040314",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1079251200,
      "url" : "https://www.perl.com/pub/2004/03/p6pdigest/20040314"
   },
   {
      "title" : "Simple IO Handling with IO::All",
      "tags" : [
         "filehandle",
         "io"
      ],
      "description" : "One of my favorite things about Perl is how flexible it is. When I don't like something about the language, I don't let it get me down. I just change the language! The secret to doing this lies in Perl...",
      "categories" : "data",
      "url" : "https://www.perl.com/pub/2004/03/12/ioall",
      "epoch" : 1078992000,
      "url_path" : "/pub/2004/03/12/ioall",
      "authors" : [
         "brian-ingerson"
      ]
   },
   {
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2004-03-07",
      "description" : "Time marches on, and another summary gets written, sure as eggs are eggs and chromatic is a chap with whom I will never start a sentence. We start, as always, with perl6-internals. Platform games Work continued this week on expanding...",
      "categories" : "perl-6",
      "url" : "https://www.perl.com/pub/2004/03/p6pdigest/20040307",
      "epoch" : 1078646400,
      "url_path" : "/pub/2004/03/p6pdigest/20040307",
      "authors" : [
         "piers-cawley"
      ]
   },
   {
      "epoch" : 1078387200,
      "url_path" : "/pub/2004/03/03/svk",
      "authors" : [
         "chia-liang-kao"
      ],
      "url" : "https://www.perl.com/pub/2004/03/03/svk",
      "description" : " I started to use Subversion one year ago and liked the elegant file-system design a lot. Soon it became impossible for me to go back to CVS. This means that I felt uncomfortable whenever I was working on projects...",
      "categories" : "tooling",
      "title" : "Distributed Version Control with svk",
      "tags" : [
         "subversion",
         "svk",
         "svn",
         "version-control",
         "version-control-systems"
      ]
   },
   {
      "epoch" : 1078041600,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2004/02/p6pdigest/20040229",
      "url" : "https://www.perl.com/pub/2004/02/p6pdigest/20040229",
      "categories" : "perl-6",
      "description" : " Welcome to the leapday summary. We'll crack straight on with perl6-internals Running up to release time As Leapday had been chosen as the release date for Parrot 0.1.0, the week was mostly spent getting things ready for release. A...",
      "title" : "This week on Perl 6, week ending 2004-02-29",
      "tags" : [
         "perl-6-internals-parrot"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2004/02/27/exegesis7",
      "url_path" : "/pub/2004/02/27/exegesis7",
      "authors" : [
         "damian-conway"
      ],
      "epoch" : 1077868800,
      "title" : "Exegesis 7",
      "tags" : [
         "exegesis",
         "formats",
         "perl-6"
      ],
      "categories" : "perl-6",
      "description" : " Editor's note: this document is out of date and remains here for historic interest. See Synopsis 7 for the current design information. What a piece of work is Perl 6! How noble in reason! How infinite in faculty! In..."
   },
   {
      "categories" : "perl-6",
      "description" : " Loading bytecode at runtime Last week Dan had specced out the rules for runtime loading of bytecode. This week, Leo TÃ¶tsch started implementing it. There was a certain amount of quibbling about syntax, but that was quickly sorted out....",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2004-02-22",
      "url_path" : "/pub/2004/02/p6pdigest/20040222",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1077436800,
      "url" : "https://www.perl.com/pub/2004/02/p6pdigest/20040222"
   },
   {
      "url" : "https://www.perl.com/pub/2004/02/19/plucene",
      "epoch" : 1077177600,
      "url_path" : "/pub/2004/02/19/plucene",
      "authors" : [
         "simon-cozens"
      ],
      "title" : "Find What You Want with Plucene",
      "tags" : [
         "plucene-lucene-search"
      ],
      "description" : " For the past few months, my former employers and I have been working on a port of the Java Lucene search engine toolkit. On the February 3rd, Plucene was released to the world, implementing almost all of the functionality...",
      "categories" : "web"
   },
   {
      "categories" : "perl-6",
      "description" : " In his talk on Parrot at OSCON last year, Dan said that Parrot would have objects 'by the end of the week'. It's been a very long week, and it's not finished yet. Right, venting over, time for the...",
      "title" : "This week on Perl 6, week ending 2004-02-15",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "epoch" : 1076832000,
      "url_path" : "/pub/2004/02/p6pdigest/20040215",
      "authors" : [
         "piers-cawley"
      ],
      "url" : "https://www.perl.com/pub/2004/02/p6pdigest/20040215"
   },
   {
      "description" : "It's coming up to Valentine's day again, and invariably my thoughts turn back to last year's rather memorable weekend-break to Stockholm, in which I learned two things: Stockholm makes a great Valentine's destination. My girlfriend of the time was not...",
      "categories" : "email",
      "tags" : [
         "cellphone-email",
         "cellphone-mail",
         "email-wap",
         "mail-to-wap-gateway",
         "mobile-mail",
         "wap",
         "mail-and-usenet-news"
      ],
      "title" : "Mail to WAP Gateways",
      "url_path" : "/pub/2004/02/13/mbox2wap",
      "authors" : [
         "pete-sergeant"
      ],
      "epoch" : 1076659200,
      "url" : "https://www.perl.com/pub/2004/02/13/mbox2wap"
   },
   {
      "description" : "Another Monday evening. Another day of displacement activity out of the way. There's a huge lump of belly pork braising slowly in a mixture of stock, rice wine & soy sauce, and nothing on the telly. It must be time...",
      "categories" : "perl-6",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2004-02-08",
      "epoch" : 1076227200,
      "url_path" : "/pub/2004/02/p6pdigest/20040208",
      "authors" : [
         "piers-cawley"
      ],
      "url" : "https://www.perl.com/pub/2004/02/p6pdigest/20040208"
   },
   {
      "description" : " Sometime around July 2002 there was another of the seemingly inevitable and interminable threads about mailing list managers that pop up with regrettable frequency on the London Perl Mongers mailing list. It almost certainly contained references to Reply To...",
      "categories" : "email",
      "title" : "Siesta Mailing List Manager",
      "tags" : [
         "ezmlm",
         "mailing-list-manager",
         "mailman",
         "majordomo",
         "mlm",
         "perl-mail",
         "perl-mailing-list",
         "siesta"
      ],
      "authors" : [
         "simon-wistow"
      ],
      "url_path" : "/pub/2004/02/05/siesta",
      "epoch" : 1075968000,
      "url" : "https://www.perl.com/pub/2004/02/05/siesta"
   },
   {
      "epoch" : 1075622400,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2004/02/p6pdigest/20040201",
      "url" : "https://www.perl.com/pub/2004/02/p6pdigest/20040201",
      "description" : "Welcome once again to Gateshead, where the skies are grey, the view is uninspiring, and the workmen across the road seem determined to fall off the ladder before they get the double glazing fitted. But enough of the gay Gateshead...",
      "categories" : "perl-6",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2004-02-01"
   },
   {
      "title" : "How We Wrote the Template Toolkit Book ...",
      "tags" : [
         "documentation",
         "template-toolkit"
      ],
      "categories" : "tooling",
      "description" : "There are a number of tools available for writing books. Many people would immediately reach for their favorite word processor, but having written one book using Microsoft Word I'm very unlikely to repeat the experience. Darren Chamberlain, Andy Wardley, and...",
      "url" : "https://www.perl.com/pub/2004/01/30/ttbook",
      "epoch" : 1075449600,
      "authors" : [
         "dave-cross"
      ],
      "url_path" : "/pub/2004/01/30/ttbook"
   },
   {
      "epoch" : 1075017600,
      "url_path" : "/pub/2004/01/p6pdigest/20040125",
      "authors" : [
         "piers-cawley"
      ],
      "url" : "https://www.perl.com/pub/2004/01/p6pdigest/20040125",
      "categories" : "perl-6",
      "description" : " Welcome to the first summary from my new home in Gateshead. The same old wibble, with a different view from its window and fewer trips to London. Right, time to see what's been going on in perl6-internals this week....",
      "title" : "This week on Perl 6, week ending 2004-01-25",
      "tags" : [
         "perl-6-internals-parrot"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2004/01/23/macglue",
      "url_path" : "/pub/2004/01/23/macglue",
      "authors" : [
         "simon-cozens",
         "chris-nandor"
      ],
      "epoch" : 1074844800,
      "tags" : [
         "mac-applications",
         "mac-glue",
         "perl-for-macs",
         "perl-mac-apps",
         "scripting",
         "macintosh"
      ],
      "title" : "Introducing Mac::Glue",
      "description" : " Thanks to the popularity of Mac OS X, the new iBook, and the PowerBook G4, it's no longer uncool to talk about owning an Apple. Longtime Mac devotees have now been joined by longtime Unix devotees and pretty much...",
      "categories" : "mac"
   },
   {
      "url" : "https://www.perl.com/pub/2004/01/16/regexps",
      "url_path" : "/pub/2004/01/16/regexps",
      "authors" : [
         "aaron-mackey"
      ],
      "epoch" : 1074240000,
      "title" : "Maintaining Regular Expressions",
      "tags" : [
         "brackets",
         "perl",
         "perl-brackets",
         "regex-brackets",
         "regexp",
         "regular-expressions"
      ],
      "categories" : "regular-expressions",
      "description" : " For some, regular expressions provide the chainsaw functionality of the much-touted Perl \"Swiss Army knife\" metaphor. They are powerful, fast, and very sharp, but like real chainsaws, can be dangerous when used without appropriate safety measures. In this article..."
   },
   {
      "url_path" : "/pub/2004/01/p6pdigest/20040111",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1073808000,
      "url" : "https://www.perl.com/pub/2004/01/p6pdigest/20040111",
      "categories" : "perl-6",
      "description" : " It's Monday. People have been talking about Perl 6, Parrot and the European Union Constitution. Let's find out what they've been saying about Parrot first shall we? Threads Threads were discussed some more. Dan's deadline is coming up soon,...",
      "title" : "This week on Perl 6, week ending 2004-01-11",
      "tags" : [
         "perl-6-internals-parrot"
      ]
   },
   {
      "authors" : [
         "adam-turoff"
      ],
      "url_path" : "/pub/2004/01/09/survey",
      "epoch" : 1073635200,
      "url" : "https://www.perl.com/pub/2004/01/09/survey",
      "categories" : "community",
      "description" : " A colleague of mine recently asked me about Perl's future. Specifically, he wondered if we have any tricks up our sleeves to compete against today's two most popular platforms: .NET and Java. Without a second's hesitation, I repeated the...",
      "title" : "The State of Perl",
      "tags" : [
         "perl-future-directions"
      ]
   },
   {
      "description" : "What a surprise, a scant week after the last Perl 6 Summary of 2003, it's the first Perl 6 Summary of 2004. Will wonders never cease? Without further ado, we'll start with perl6-internals as usual. Garbage Collection Tasks Dan noted...",
      "categories" : "perl-6",
      "title" : "This week on Perl 6, week ending 2004-01-04",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "epoch" : 1073203200,
      "url_path" : "/pub/2004/01/p6pdigest/20040104",
      "authors" : [
         "piers-cawley"
      ],
      "url" : "https://www.perl.com/pub/2004/01/p6pdigest/20040104"
   },
   {
      "url" : "https://www.perl.com/pub/2003/12/18/bryar",
      "epoch" : 1071734400,
      "url_path" : "/pub/2003/12/18/bryar",
      "authors" : [
         "simon-cozens"
      ],
      "title" : "Blosxoms, Bryars and Blikis",
      "tags" : [
         "bliki",
         "blog",
         "blosxom",
         "bryar",
         "social-software",
         "wiki"
      ],
      "categories" : "web",
      "description" : " Recently we heard from Kake Pugh about the OpenGuides project, a wiki-based collaborative city guide system; previously, we heard from Brian Ingerson about his Kwiki wiki implementation. Guides, wikis, blogs ... the new fashion in software engineering at the..."
   },
   {
      "categories" : "perl-6",
      "description" : "Another week, another late summary. Luckily it's been a quiet week so I should get this written faster than usual. As is traditional, we start with perl6-internals Parrot build system tinkering Andy Dougherty and other discussed extending the Parrot build...",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-12-07",
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2003/12/p6pdigest/20031207",
      "epoch" : 1070784000,
      "url" : "https://www.perl.com/pub/2003/12/p6pdigest/20031207"
   },
   {
      "url" : "https://www.perl.com/pub/2003/12/05/slimp3",
      "url_path" : "/pub/2003/12/05/slimp3",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 1070611200,
      "tags" : [
         "mp3",
         "slim-devices",
         "slimp3",
         "slimp3",
         "squeezebox",
         "wireless-mp3",
         "business"
      ],
      "title" : "How Perl Powers the Squeezebox",
      "description" : " Slim Devices made their name in 2001 with the SLIMP3, a networked MP3 and Internet radio player. The SLIMP3 won a five-out-of-five mouse rating in Macworld magazine, and was featured in GQ magazine and on TechTV's The Screen Savers....",
      "categories" : "community"
   },
   {
      "url" : "https://www.perl.com/pub/2003/11/p6pdigest/20031130",
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2003/11/p6pdigest/20031130",
      "epoch" : 1070179200,
      "title" : "This week on Perl 6, week ending 2003-11-30",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "description" : " Welcome back to the weekly Perl 6 Summary, which I'm hoping to keep on a weekly cycle for the foreseeable future. It's been a relatively low volume week this week, I'm assuming that Thanksgiving had something to do with...",
      "categories" : "perl-6"
   },
   {
      "categories" : "perl-6",
      "description" : " Right, hopefully things are back to normal(ish) after the disk crashes that rather spoilt the last summary. I've managed to fill in my mail archive too so this summary will cover the events of the last fortnight (that's two...",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This fortnight on Perl 6, week ending 2003-11-23",
      "epoch" : 1069574400,
      "url_path" : "/pub/2003/11/p6pdigest/20031123",
      "authors" : [
         "piers-cawley"
      ],
      "url" : "https://www.perl.com/pub/2003/11/p6pdigest/20031123"
   },
   {
      "description" : " One of the common Perl idioms is processing text files line by line: while( &lt;FH&gt; ) { do something with $_ } This idiom has several variants, but the key point is that it reads in only one line...",
      "categories" : "data",
      "title" : "Perl Slurp-Eaze",
      "tags" : [
         "slurp-slurping-file-io"
      ],
      "epoch" : 1069401600,
      "authors" : [
         "uri-guttman"
      ],
      "url_path" : "/pub/2003/11/21/slurp",
      "url" : "https://www.perl.com/pub/2003/11/21/slurp"
   },
   {
      "url" : "https://www.perl.com/pub/2003/11/17/lmsolve",
      "url_path" : "/pub/2003/11/17/lmsolve",
      "authors" : [
         "shlomi-fish"
      ],
      "epoch" : 1069056000,
      "tags" : [
         "games-puzzles-logic-maze"
      ],
      "title" : "Solving Puzzles with LM-Solve",
      "description" : " Suppose you encounter a (single-player) riddle or a puzzle that you don't know how to solve. Let's also suppose that this puzzle involves moving between several states of the board with an enumerable number of moves emerging from one...",
      "categories" : "games"
   },
   {
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-11-09",
      "categories" : "perl-6",
      "description" : " Traditionally this paragraph concerns itself with a few words on what I've been up to before finally settling down to get the summary written. But despite the fact that it's nearly four o'clock, it's been one of those days...",
      "url" : "https://www.perl.com/pub/2003/11/p6pdigest/20031109",
      "epoch" : 1068364800,
      "url_path" : "/pub/2003/11/p6pdigest/20031109",
      "authors" : [
         "piers-cawley"
      ]
   },
   {
      "epoch" : 1068192000,
      "authors" : [
         "phil-crow"
      ],
      "url_path" : "/pub/2003/11/07/java",
      "url" : "https://www.perl.com/pub/2003/11/07/java",
      "description" : "In this article, I will show how to bring Java code into a Perl program with Inline::Java. I won't probe the internals of Inline or Inline::Java, but I will tell you what you need to make a Java class available...",
      "categories" : "development",
      "title" : "Bringing Java into Perl",
      "tags" : [
         "java-inline"
      ]
   },
   {
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2003/11/p6pdigest/20031102",
      "epoch" : 1067760000,
      "url" : "https://www.perl.com/pub/2003/11/p6pdigest/20031102",
      "description" : " It's Monday morning, the croissants have been baked, the focaccia is glistening with all the extra virgin olive oil I poured on it as it left the oven and, in the airing cupboard, a raisin borodinsky slouches towards full...",
      "categories" : "perl-6",
      "title" : "This week on Perl 6, week ending 2003-11-02",
      "tags" : [
         "perl-6-internals-parrot"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2003/10/31/openguides",
      "epoch" : 1067587200,
      "url_path" : "/pub/2003/10/31/openguides",
      "authors" : [
         "kake-pugh"
      ],
      "title" : "Open Guides",
      "tags" : [
         "wiki-openguides"
      ],
      "description" : " First, a disclaimer. I'm not a wiki celebrity. I don't look good in StudlyCaps. I'm not part of the wiki culture â I've never contributed to Ward's Wiki, never used TWiki, am baffled by MoinMoin, and every time I...",
      "categories" : "community"
   },
   {
      "title" : "This week on Perl 6, week ending 2003-10-26",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "categories" : "perl-6",
      "description" : " Where does the time go? It seems like only yesterday that I was sat hiding Leon Brocard in the first letters of the first 11 body paragraphs of the last summary. Now, here I am, on the train, typing...",
      "url" : "https://www.perl.com/pub/2003/10/p6pdigest/20031026",
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2003/10/p6pdigest/20031026",
      "epoch" : 1067155200
   },
   {
      "epoch" : 1066896000,
      "url_path" : "/pub/2003/10/23/databases",
      "authors" : [
         "simon-cozens"
      ],
      "url" : "https://www.perl.com/pub/2003/10/23/databases",
      "description" : " An Embarrassing Confession I'd like to think that I'm a reasonably decent Perl programmer now. I'd like to think that I have a good grasp of how to solve relatively common problems in Perl. But, you know, it hasn't...",
      "categories" : "data",
      "tags" : [
         "databases",
         "dbi",
         "rdbms",
         "relational-databases"
      ],
      "title" : "Database Programming with Perl"
   },
   {
      "description" : " Lumme! Another week, another summary. Every week (almost) we start with the perl6-internals list, so here goes. An Evil task for the interested Our Glorious Leader, Dan Sugalski, last week asked for volunteers to work on making ordered destruction...",
      "categories" : "perl-6",
      "title" : "This week on Perl 6, week ending 2003-10-19",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2003/10/p6pdigest/20031019",
      "epoch" : 1066550400,
      "url" : "https://www.perl.com/pub/2003/10/p6pdigest/20031019"
   },
   {
      "categories" : "science",
      "description" : " James D. Tisdall is the author of the recently released Mastering Perl for Bioinformatics. In my previous article, A Chromosome at a Time with Perl, Part I, I showed you some programming \"tricks\" that help you avoid the trap...",
      "tags" : [
         "bioinformatics",
         "bioperl",
         "chromosome",
         "genome",
         "gigabases",
         "perl",
         "perl-and-bioinformatics",
         "subroutines"
      ],
      "title" : "A Chromosome at a Time with Perl, Part 2",
      "authors" : [
         "james-d-tisdall"
      ],
      "url_path" : "/pub/2003/10/15/bioinformatics",
      "epoch" : 1066204800,
      "url" : "https://www.perl.com/pub/2003/10/15/bioinformatics"
   },
   {
      "url" : "https://www.perl.com/pub/2003/10/p6pdigest/20031012",
      "epoch" : 1065945600,
      "url_path" : "/pub/2003/10/p6pdigest/20031012",
      "authors" : [
         "piers-cawley"
      ],
      "title" : "This week on Perl 6, week ending 2003-10-12",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "description" : " Good afternoon readers. You find me sitting comfortably and tired after a vaguely frantic week involving large amounts of new (and huge) equipment, the delivery of a new Mini Cooper, and four days offline at a large format photography...",
      "categories" : "perl-6"
   },
   {
      "description" : " About a year ago, a person asked the Fun With Perl mailing list about some code they had written to do database queries. It's important to note that this person was posting from an .it address; why will become...",
      "categories" : "development",
      "title" : "A Refactoring Example",
      "tags" : [
         "faster",
         "optimization",
         "perl",
         "refactoring",
         "speed",
         "style-guides"
      ],
      "authors" : [
         "michael-schwern"
      ],
      "url_path" : "/pub/2003/10/09/refactoring",
      "epoch" : 1065686400,
      "url" : "https://www.perl.com/pub/2003/10/09/refactoring"
   },
   {
      "url_path" : "/pub/2003/10/03/musicbrainz",
      "authors" : [
         "paul-mison"
      ],
      "epoch" : 1065168000,
      "url" : "https://www.perl.com/pub/2003/10/03/musicbrainz",
      "description" : "It's quite possible to end up with digital music files that don't have good information about what they are. Files that don't have ID3 information can rely on paths for album information, for example, and that is lost easily. M3U...",
      "categories" : "data",
      "title" : "Identifying Audio Files with MusicBrainz",
      "tags" : [
         "cddb",
         "freedb",
         "mp3",
         "music",
         "musicbrainz"
      ]
   },
   {
      "tags" : [
         "searching-search-reverse-index"
      ],
      "title" : "Adding Search Functionality to Perl Applications",
      "description" : " Introduction to Searching Usually, when building an application, a lot of thought goes into how the data is entered and updated, rather than finding it again. Finding data is an afterthought, especially when developing with a small dataset. If...",
      "categories" : "data",
      "url" : "https://www.perl.com/pub/2003/09/25/searching",
      "url_path" : "/pub/2003/09/25/searching",
      "authors" : [
         "aaron-trevena"
      ],
      "epoch" : 1064476800
   },
   {
      "title" : "This week on Perl 6, week ending 2003-09-21",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "description" : " Deadlines, I love the sound they make as they fly past. Those of you who receive this summary via mail may have noticed that this summary is a little late, with any luck it will make up for its...",
      "categories" : "perl-6",
      "url" : "https://www.perl.com/pub/2003/09/p6pdigest/20030921",
      "url_path" : "/pub/2003/09/p6pdigest/20030921",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1064131200
   },
   {
      "description" : " Editor's note: In this third and final batch of recipes excerpted from Perl Cookbook, you'll find solutions and code examples for extracting HTML table data, templating with HTML::Mason, and making simple changes to elements or text. Sample Recipe: Extracting...",
      "categories" : "development",
      "tags" : [
         "extracting-table-data",
         "making-simple-changes-to-elements-or-text",
         "perl",
         "perl-cookbook",
         "templating-with-html-mason"
      ],
      "title" : "Cooking with Perl, Part 3",
      "epoch" : 1063785600,
      "url_path" : "/pub/2003/09/17/perlcookbook",
      "authors" : [
         "perldotcom"
      ],
      "url" : "https://www.perl.com/pub/2003/09/17/perlcookbook"
   },
   {
      "title" : "A Chromosome at a Time with Perl, Part 1",
      "tags" : [
         "bioinformatics",
         "biological-sequence-data",
         "biology"
      ],
      "description" : " James D. Tisdall is the author of the soon-to-be-released Mastering Perl for Bioinformatics. For some time now, the use of Perl in biology has been standard practice. Perl remains the most popular language among biologists for a multitude of...",
      "categories" : "science",
      "url" : "https://www.perl.com/pub/2003/09/10/bioinformatics",
      "epoch" : 1063267200,
      "url_path" : "/pub/2003/09/10/bioinformatics",
      "authors" : [
         "james-d-tisdall"
      ]
   },
   {
      "categories" : "perl-6",
      "description" : " Welcome to the last Perl 6 summary of my 35th year. Next week's summary will (in theory) be written on my 36th birthday (a year of being square, so no change there then). I'll give you fair warning that...",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-09-07",
      "url_path" : "/pub/2003/09/p6pdigest/20030907",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1062921600,
      "url" : "https://www.perl.com/pub/2003/09/p6pdigest/20030907"
   },
   {
      "description" : " Editor's note: The new edition of Perl Cookbook has released, so this week we continue to highlight recipes-new to the second edition-for your sampling pleasure. This week's excerpts include recipes from Chapter 14 (\"Database Access\") and Chapter 18 (\"Internet...",
      "categories" : "development",
      "tags" : [
         "perl",
         "perl-cookbook",
         "sending-attachments-in-email",
         "using-sql-without-a-database-server"
      ],
      "title" : "Cooking with Perl, Part 2",
      "url_path" : "/pub/2003/09/03/perlcookbook",
      "authors" : [
         "tom-christiansen",
         "nathan-torkington"
      ],
      "epoch" : 1062576000,
      "url" : "https://www.perl.com/pub/2003/09/03/perlcookbook"
   },
   {
      "description" : "Welcome to this week's Perl 6 summary. This week, for one week only I'm going to break with a long established summary tradition. No, that doesn't mean I won't be mentioning Leon Brocard this week. Nope, this week we're going...",
      "categories" : "perl-6",
      "title" : "This week on Perl 6, week ending 2003-08-31",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "epoch" : 1062316800,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2003/08/p6pdigest/20030831",
      "url" : "https://www.perl.com/pub/2003/08/p6pdigest/20030831"
   },
   {
      "title" : "Using Perl to Enable the Disabled",
      "tags" : [
         "disabled-speech",
         "pvoice",
         "communications"
      ],
      "description" : " We use Perl for all kinds of things. Web development, data munging, system administration, even bioinformatics; most of us have used Perl for one of these situations. A few people use Perl for building end-user applications with graphical user...",
      "categories" : "community",
      "url" : "https://www.perl.com/pub/2003/08/28/pvoice",
      "url_path" : "/pub/2003/08/28/pvoice",
      "authors" : [
         "jouke-visser"
      ],
      "epoch" : 1061625600
   },
   {
      "url_path" : "/pub/2003/08/21/perlcookbook",
      "authors" : [
         "tom-christiansen",
         "nathan-torkington"
      ],
      "epoch" : 1061452800,
      "url" : "https://www.perl.com/pub/2003/08/21/perlcookbook",
      "categories" : "development",
      "description" : " Editor's note: The new edition of Perl Cookbook is about to hit store shelves, so to trumpet its release, we offer some recipes-new to the second edition-for your sampling pleasure. This week's excerpts include recipes from Chapter 6 (\"Pattern...",
      "title" : "Cooking with Perl",
      "tags" : [
         "cooking-with-perl",
         "file-contents",
         "matching-nested-patterns",
         "patterns",
         "perl",
         "perl-cookbook",
         "pretending-a-string-is-a-file"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2003/08/p6pdigest/20030817",
      "epoch" : 1061107200,
      "url_path" : "/pub/2003/08/p6pdigest/20030817",
      "authors" : [
         "piers-cawley"
      ],
      "title" : "This week on Perl 6, week ending 2003-08-17",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "description" : " Picture, if you will a sunny garden, unaffected by power cuts, floods, plagues of frog or any of the other troubles that assail us in this modern world. Picture, if you will, your summarizer, sat in this garden with...",
      "categories" : "perl-6"
   },
   {
      "tags" : [
         "patterns",
         "patterns-in-perl",
         "perl",
         "perl-programming"
      ],
      "title" : "Perl Design Patterns, Part 3",
      "description" : " This is the third (and final) article in a series which form one Perl programmer's response to the book Design Patterns (also known as the Gang of Four book or simply as GoF, because four authors wrote it). As...",
      "categories" : "development",
      "url" : "https://www.perl.com/pub/2003/08/15/design3",
      "authors" : [
         "phil-crow"
      ],
      "url_path" : "/pub/2003/08/15/design3",
      "epoch" : 1060934400
   },
   {
      "url" : "https://www.perl.com/pub/2003/08/07/design2",
      "authors" : [
         "phil-crow"
      ],
      "url_path" : "/pub/2003/08/07/design2",
      "epoch" : 1060243200,
      "title" : "Perl Design Patterns, Part 2",
      "tags" : [
         "design-patterns"
      ],
      "categories" : "development",
      "description" : " This is the second in a series of articles which form one Perl programmer's response to the book, Design Patterns (also known as the Gang of Four book or simply as GoF, because four authors wrote it). As I..."
   },
   {
      "categories" : "perl-6",
      "description" : " &quot;Ooh look, it's another Perl 6 summary. Doesn't that man ever take a holiday?&quot; &quot;I think he took one last month.&quot; &quot;Is it in Esperanto this week?&quot; &quot;I don't think so.&quot; &quot;Does Leon Brocard get a mention?&quot; &quot;It certainly...",
      "title" : "This week on Perl 6, week ending 2003-08-03",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "epoch" : 1059897600,
      "url_path" : "/pub/2003/08/p6pdigest/20030803",
      "authors" : [
         "piers-cawley"
      ],
      "url" : "https://www.perl.com/pub/2003/08/p6pdigest/20030803"
   },
   {
      "title" : "Exegesis 6",
      "tags" : [
         "apocalypse-6",
         "damian-conway",
         "exegesis-6",
         "perl-6",
         "subroutines"
      ],
      "categories" : "perl-6",
      "description" : " Editor's note: this document is out of date and remains here for historic interest. See Synopsis 6 for the current design information. As soon as she walked through my door I knew her type: she was an argument waiting...",
      "url" : "https://www.perl.com/pub/2003/07/29/exegesis6",
      "url_path" : "/pub/2003/07/29/exegesis6",
      "authors" : [
         "damian-conway"
      ],
      "epoch" : 1059465600
   },
   {
      "url" : "https://www.perl.com/pub/2003/07/22/overloading",
      "url_path" : "/pub/2003/07/22/overloading",
      "authors" : [
         "dave-cross"
      ],
      "epoch" : 1058860800,
      "title" : "Overloading",
      "tags" : [
         "operator-overloading",
         "overload-pm",
         "perl-overloading-mechanism"
      ],
      "description" : " Introduction: What is Overloading? All object-oriented programming languages have a feature called overloading, but in most of them this term means something different from what it means in Perl. Take a look at this Java example: public Fraction(int num,...",
      "categories" : "development"
   },
   {
      "url" : "https://www.perl.com/pub/2003/06/p6pdigest/20030720",
      "url_path" : "/pub/2003/06/p6pdigest/20030720",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1058688000,
      "title" : "This week on Perl 6, week ending 2003-07-20",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "description" : " Welcome back to an interim Perl 6 Summary, falling between two conference weeks &mdash; OSCON and YAPC::Europe. For reasons involving insanity, a EuroStar ticket going begging, and undeserved generosity, I shall be bringing my conference haul up to 3...",
      "categories" : "perl-6"
   },
   {
      "title" : "State of the Onion 2003",
      "tags" : [
         "larry-wall",
         "parrot",
         "perl",
         "perl-6",
         "ponie",
         "state-of-the-onion"
      ],
      "categories" : "community",
      "description" : " This is the 7th annual State of the Perl Onion speech, wherein I tell you how Perl is doing. Perl is doing fine, thank you. Now that that's out of the way, I'd like to spend the rest of...",
      "url" : "https://www.perl.com/pub/2003/07/16/soto2003",
      "authors" : [
         "larry-wall"
      ],
      "url_path" : "/pub/2003/07/16/soto2003",
      "epoch" : 1058342400
   },
   {
      "url_path" : "/pub/2003/07/15/nocode",
      "authors" : [
         "kake-pugh"
      ],
      "epoch" : 1058256000,
      "url" : "https://www.perl.com/pub/2003/07/15/nocode",
      "categories" : "web",
      "description" : " One of the most boring programming tasks in the world has to be pulling data out of a database and displaying it on a web site. Yet it's also one of the most ubiquitous. Perl programmers being lazy, there...",
      "tags" : [
         "template-database-sql-dbi"
      ],
      "title" : "How to Avoid Writing Code"
   },
   {
      "categories" : "perl-6",
      "description" : "Welcome once again to the Perl 6 Summary, in a week of major developments and tantalizing hints. We start, as usual, with what's happening in perl6-internals: Targeting Parrot from GCC Discussion in the thread entitled 'WxWindows Support / Interfacing Libraries'...",
      "title" : "This week on Perl 6, week ending 2003-07-13",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "epoch" : 1058083200,
      "url_path" : "/pub/2003/06/p6pdigest/20030713",
      "authors" : [
         "piers-cawley"
      ],
      "url" : "https://www.perl.com/pub/2003/06/p6pdigest/20030713"
   },
   {
      "description" : " Scratching Your Own Itch Some time ago I became intrigued with Digest authentication, which uses the same general mechanism as the familiar Basic authentication scheme but offers significantly more password security without requiring an SSL connection. At the time...",
      "categories" : "web",
      "tags" : [
         "apache-2",
         "apache-authhandler",
         "digest-authentication",
         "geoffrey-young",
         "mod-perl-2"
      ],
      "title" : "Integrating mod_perl with Apache 2.1 Authentication",
      "epoch" : 1057651200,
      "url_path" : "/pub/2003/07/08/mod/perl",
      "authors" : [
         "geoffrey-young"
      ],
      "url" : "https://www.perl.com/pub/2003/07/08/mod/perl"
   },
   {
      "title" : "This week on Perl 6, week ending 2003-07-06",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "categories" : "perl-6",
      "description" : "Perl 6 Summary for the week ending 20030706 Welcome to this week's Perl 6 Summary, coming to you live from a gatecrashed Speakers' lounge at OSCON/TPC, surrounded by all the cool people like Dan Sugalski, Lisa Wolfisch, Graham Barr, and...",
      "url" : "https://www.perl.com/pub/2003/06/p6pdigest/20030706",
      "url_path" : "/pub/2003/06/p6pdigest/20030706",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1057478400
   },
   {
      "url" : "https://www.perl.com/pub/2003/07/01/regexps",
      "epoch" : 1057046400,
      "url_path" : "/pub/2003/07/01/regexps",
      "authors" : [
         "simon-cozens"
      ],
      "title" : "Power Regexps, Part II",
      "tags" : [
         "regexps-regular-expressions"
      ],
      "categories" : "regular-expressions",
      "description" : " In the previous article, we looked at some of the more intermediate features of regular expressions, including multiline matching, quoting, and interpolation. This time, we're going to look at more-advanced features. We'll also look at some modules that can..."
   },
   {
      "title" : "Perl 6 Design Philosophy",
      "tags" : [
         "design-principles-in-perl-6",
         "parrot",
         "perl-6",
         "perl-6-essentials"
      ],
      "categories" : "perl-6",
      "description" : " Editor's note: Perl 6 Essentials is the first book to offer a peek into the next major version of the Perl language. It covers the development of Perl 6 syntax as well as Parrot, the language-independent interpreter developed as...",
      "url" : "https://www.perl.com/pub/2003/06/25/perl6essentials",
      "authors" : [
         "allison-randal",
         "dan-sugalski",
         "leopold-t-tsch"
      ],
      "url_path" : "/pub/2003/06/25/perl6essentials",
      "epoch" : 1056528000
   },
   {
      "categories" : "perl-6",
      "description" : "The Perl 6 Summary for the week ending 20030629 Welcome to the third of my US tour Perl 6 summaries. Once again I'm pleased to report that the denizens of the Perl 6 mailing lists continue to make the life...",
      "title" : "This week on Perl 6, week ending 2003-06-29",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "url_path" : "/pub/2003/06/p6pdigest/20030629",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1056355200,
      "url" : "https://www.perl.com/pub/2003/06/p6pdigest/20030629"
   },
   {
      "url" : "https://www.perl.com/pub/2003/06/p6pdigest/20030622",
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2003/06/p6pdigest/20030622",
      "epoch" : 1056355200,
      "title" : "This week on Perl 6, week ending 2003-06-22",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "description" : " Welcome to my first anniversary issue of the Perl 6 Summary. Hopefully there won't be too many more anniversaries to celebrate before we have a real, running Perl 6, but there's bound to be ongoing development after that. My...",
      "categories" : "perl-6"
   },
   {
      "epoch" : 1056009600,
      "url_path" : "/pub/2003/06/19/treasures",
      "authors" : [
         "casey-west"
      ],
      "url" : "https://www.perl.com/pub/2003/06/19/treasures",
      "description" : " In the previous hidden treasures article, we looked at some easy-to-use (but not well-known) modules in the Perl Core. In this article, we dig deeper to uncover some of the truly precious and unique gems in the Perl Core....",
      "categories" : "perl-internals",
      "tags" : [],
      "title" : "Hidden Treasures of the Perl Core, part II"
   },
   {
      "description" : " Welcome to the last Perl 6 Summary of my first year of summarizing. If I were a better writer (or if I weren't listening with half an ear to Damian telling YAPC about Perl 6 in case anything's changed),...",
      "categories" : "perl-6",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-06-15",
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2003/06/p6pdigest/20030615",
      "epoch" : 1055664000,
      "url" : "https://www.perl.com/pub/2003/06/p6pdigest/20030615"
   },
   {
      "tags" : [],
      "title" : "Perl Design Patterns",
      "categories" : "development",
      "description" : " Introduction In 1995, Design Patterns was published, and during the intervening years, it has had a great influence on how many developers write software. In this series of articles, I present my take on how the Design Patterns book...",
      "url" : "https://www.perl.com/pub/2003/06/13/design1",
      "epoch" : 1055491200,
      "authors" : [
         "phil-crow"
      ],
      "url_path" : "/pub/2003/06/13/design1"
   },
   {
      "description" : " It's another Monday, it's another summary and I need to get this finished so I can starting getting the house in order before we head off to Boca Raton and points north and west on the long road to...",
      "categories" : "perl-6",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-06-08",
      "epoch" : 1055059200,
      "url_path" : "/pub/2003/06/p6pdigest/20030608",
      "authors" : [
         "piers-cawley"
      ],
      "url" : "https://www.perl.com/pub/2003/06/p6pdigest/20030608"
   },
   {
      "epoch" : 1054886400,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2003/06/06/regexps",
      "url" : "https://www.perl.com/pub/2003/06/06/regexps",
      "description" : " Everyone knows that Perl works particularly well as a text processing language, and that it has a great many tools to help the programmer slice and dice text files. Most people know that Perl's regular expressions are the mainstay...",
      "categories" : "regular-expressions",
      "tags" : [
         "regexps-regular-expressions"
      ],
      "title" : "Regexp Power"
   },
   {
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-06-01",
      "categories" : "perl-6",
      "description" : "Another Monday, another Perl 6 Summary. Does this man never take a holiday? (Yes, but only to go to Perl conferences this year, how did that happen?) We start with the internals list as usual. More on timely destruction The...",
      "url" : "https://www.perl.com/pub/2003/06/p6pdigest/20030601",
      "epoch" : 1054454400,
      "url_path" : "/pub/2003/06/p6pdigest/20030601",
      "authors" : [
         "piers-cawley"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2003/05/29/treasures",
      "url_path" : "/pub/2003/05/29/treasures",
      "authors" : [
         "casey-west"
      ],
      "epoch" : 1054195200,
      "title" : "Hidden Treasures of the Perl Core",
      "tags" : [],
      "description" : " The Perl Core comes with a lot of little modules to help you get thejob done. Many of these modules are not well-known. Even some of the well-known modules have some nice features that are often overlooked. In this...",
      "categories" : "perl-internals"
   },
   {
      "url_path" : "/pub/2003/05/p6pdigest/20030525",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1053849600,
      "url" : "https://www.perl.com/pub/2003/05/p6pdigest/20030525",
      "categories" : "perl-6",
      "description" : " Welcome back to another Perl 6 summary in which Piers comes back from watching a load of pretty girls dancing 'round a huge Maypole in Wellow (it's 60 feet high, the tallest permanent Maypole in England, there's been on...",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-05-25"
   },
   {
      "url" : "https://www.perl.com/pub/2003/05/22/testing",
      "epoch" : 1053590400,
      "authors" : [
         "geoffrey-young"
      ],
      "url_path" : "/pub/2003/05/22/testing",
      "tags" : [],
      "title" : "Testing mod_perl 2.0",
      "categories" : "web",
      "description" : " Last time, we looked at writing a simple Apache output filter - Apache::Clean - using the mod_perl 2.0 API. How did I know that the filter I presented really worked? I wrote a test suite for it, one that..."
   },
   {
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2003/05/p6pdigest/20030518",
      "epoch" : 1053244800,
      "url" : "https://www.perl.com/pub/2003/05/p6pdigest/20030518",
      "description" : " Welcome back to another Perl 6 summary, this week without any 'comic' introductions. So, without further ado we press straight on to the happenings in perl6-internals. Makefile issues Bruce Gray sent in a patch to tweak Parrot's Makefile to...",
      "categories" : "perl-6",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-05-18"
   },
   {
      "url" : "https://www.perl.com/pub/2003/05/14/kwiki",
      "epoch" : 1052812800,
      "authors" : [
         "brian-ingerson"
      ],
      "url_path" : "/pub/2003/05/14/kwiki",
      "title" : "CGI::Kwiki",
      "tags" : [
         "wiki-kwiki-ingy"
      ],
      "categories" : "web",
      "description" : " This article is about a new Perl module called CGI::Kwiki. With this module you can create a Wiki Web site in less than a minute. Now that's quick. Or more appropriately, ``That's Kwik!'' If you've not heard of a..."
   },
   {
      "description" : "PEPPERPOT 1: Ooh look! It's another Perl 6 summary! PEPPERPOT 2: Well I never did! What's in it this week? PP 1: Ooh, I don't know. Shall we have a look? PP 2: Ooh yes. Following a convoluted animation sequence...",
      "categories" : "perl-6",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-05-11",
      "epoch" : 1052640000,
      "url_path" : "/pub/2003/05/p6pdigest/20030511",
      "authors" : [
         "piers-cawley"
      ],
      "url" : "https://www.perl.com/pub/2003/05/p6pdigest/20030511"
   },
   {
      "categories" : "perl-6",
      "description" : " Welcome my friends, to the show that never ends. Yes, another week, another Perl 6 Summary, chock full of condensed goodness, Leo T&ouml;tsch admiration and a smattering information about the design and development of Perl 6 and its target...",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-05-04",
      "url_path" : "/pub/2003/05/p6pdigest/20030507",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1052294400,
      "url" : "https://www.perl.com/pub/2003/05/p6pdigest/20030507"
   },
   {
      "url" : "https://www.perl.com/pub/2003/05/06/conferences",
      "url_path" : "/pub/2003/05/06/conferences",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 1052208000,
      "title" : "2003 Perl Conferences",
      "tags" : [
         "conferences-yapc-tpc-oscon"
      ],
      "categories" : "community",
      "description" : " The season of Perl conferences is almost upon us! In fact, the first of the YAPCs for this year is in less than a week. So I thought this would be a good time to give a tour of..."
   },
   {
      "url" : "https://www.perl.com/pub/2003/04/p6pdigest/20030427",
      "epoch" : 1051430400,
      "url_path" : "/pub/2003/04/p6pdigest/20030427",
      "authors" : [
         "piers-cawley"
      ],
      "title" : "This week on Perl 6, week ending 2003-04-27",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "description" : " Welcome back to (I hope) a normal length summary of Perl 6 shenanigans after last week's bumper double length installment. (Thankfully traffic has been much lighter this week; I'm not sure I could cope with writing another epic.) Perl6-internals...",
      "categories" : "perl-6"
   },
   {
      "title" : "POOL",
      "tags" : [
         "modules-oo-template"
      ],
      "categories" : "development",
      "description" : " In this article, we're going to look at POOL, a handy &quot;little language&quot; I recently created for templating object-oriented modules. Now you may not write many object-oriented modules, so this may not sound too interesting to you. Don't worry;...",
      "url" : "https://www.perl.com/pub/2003/04/22/pool",
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2003/04/22/pool",
      "epoch" : 1050998400
   },
   {
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-04-20",
      "categories" : "perl-6",
      "description" : " You know how it is, you go away for a lovely weekend folk festival in Wales, you have a really good, relaxed time, singing yourself hoarse and generally forgetting all about technology before coming home to email from the...",
      "url" : "https://www.perl.com/pub/2003/04/p6pdigest/20030420",
      "epoch" : 1050825600,
      "url_path" : "/pub/2003/04/p6pdigest/20030420",
      "authors" : [
         "piers-cawley"
      ]
   },
   {
      "title" : "Filters in Apache 2.0",
      "tags" : [],
      "categories" : "web",
      "description" : " Not too long ago, despite a relative dearth of free tuits, I decided that I had put off my investigation of mod_perl 2.0 for too long - it was time to really start kicking the tires and tinkering with...",
      "url" : "https://www.perl.com/pub/2003/04/17/filters",
      "url_path" : "/pub/2003/04/17/filters",
      "authors" : [
         "geoffrey-young"
      ],
      "epoch" : 1050566400
   },
   {
      "categories" : "perl-6",
      "description" : " Another week passes, another summary gets written. How does he do it? We start, as per usual with the still very quiet perl6-internals list. hey sexy where you been? The internals list's normally impeccable spam filters failed slightly this...",
      "title" : "This week on Perl 6, week ending 2003-04-13",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "epoch" : 1050220800,
      "url_path" : "/pub/2003/04/p6pdigest/20030413",
      "authors" : [
         "piers-cawley"
      ],
      "url" : "https://www.perl.com/pub/2003/04/p6pdigest/20030413"
   },
   {
      "description" : " Editor's note: this document is out of date and remains here for historic interest. See Synopsis 6 for the current design information. This document summarizes Apocalypse 6, which covers subroutines and the new type system. Subroutines and Other Code...",
      "categories" : "perl-6",
      "title" : "Synopsis 6",
      "tags" : [
         "perl-6-apocalypse"
      ],
      "epoch" : 1049875200,
      "authors" : [
         "damian-conway",
         "allison-randal"
      ],
      "url_path" : "/pub/2003/04/09/synopsis",
      "url" : "https://www.perl.com/pub/2003/04/09/synopsis"
   },
   {
      "url_path" : "/pub/2003/04/p6pdigest/20030406",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1049616000,
      "url" : "https://www.perl.com/pub/2003/04/p6pdigest/20030406",
      "description" : "Welcome my friends to the show that never ends. Yes, it's another of Piers Cawley's risible attempts to summarize the week's happenings in the Perl 6 development community. We start, as usual, with events in the perl6-internals world (not the...",
      "categories" : "perl-6",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-04-06"
   },
   {
      "title" : "Apache::VMonitor - The Visual System and Apache Server Monitor",
      "tags" : [
         "mod-perl-apache-vmonitor"
      ],
      "description" : " Stas Bekman is a coauthor of O'Reilly's upcoming Practical mod_perl. It's important to be able to monitor your production system's health. You want to monitor the memory and file system utilization, the system load, how much memory the processes...",
      "categories" : "web",
      "url" : "https://www.perl.com/pub/2003/04/02/mod/perl",
      "url_path" : "/pub/2003/04/02/mod/perl",
      "authors" : [
         "stas-bekman"
      ],
      "epoch" : 1049270400
   },
   {
      "categories" : "perl-6",
      "description" : " Welcome once again to the gallimaufry that is a Perl 6 summary. Unfettered this week by the presence of feline distraction we plunge straight into the crystal clear waters of perl6-internals. Iterator proof of concept People must really like...",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-03-30",
      "url_path" : "/pub/2003/03/p6pdigest/20030330",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1049011200,
      "url" : "https://www.perl.com/pub/2003/03/p6pdigest/20030330"
   },
   {
      "epoch" : 1048665600,
      "url_path" : "/pub/2003/03/26/perlanddotnet",
      "authors" : [
         "randy-ray"
      ],
      "url" : "https://www.perl.com/pub/2003/03/26/perlanddotnet",
      "categories" : "windows",
      "description" : " Randy Ray is coauthor of Programming Web Services with Perl Abstract: One of the most common categories of questions on the SOAP::Lite mailing list is how to get Perl SOAP applications to work with .NET services. It's not that...",
      "title" : "Five Tips for .NET Programming in Perl",
      "tags" : [
         "dotnet",
         "net",
         "perl",
         "perl-soap-applications",
         "soap-lite"
      ]
   },
   {
      "categories" : "perl-6",
      "description" : " Assuming I can tear myself away from stroking the cat who has just magically appeared on my chest and is even now trying to wipe his dags on my nose, welcome one and all to another Perl 6 summary,...",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-03-23",
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2003/03/p6pdigest/20030323",
      "epoch" : 1048406400,
      "url" : "https://www.perl.com/pub/2003/03/p6pdigest/20030323"
   },
   {
      "categories" : "development",
      "description" : " Have you ever wished that you could have more than one version of a Perl module installed on your system, and that you could easily tell Perl exactly which one you wanted to load? Perhaps you have some legacy...",
      "title" : "For Perl Programmers : only",
      "tags" : [
         "only-module-version"
      ],
      "url_path" : "/pub/2003/03/18/only",
      "authors" : [
         "brian-ingerson"
      ],
      "epoch" : 1047974400,
      "url" : "https://www.perl.com/pub/2003/03/18/only"
   },
   {
      "title" : "This week on Perl 6, week ending 2003-03-16",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "categories" : "perl-6",
      "description" : " Spring is in the air, the Apocalypse is here (or imminent, depending on which sense of the word 'Apocalypse' you are using). We'll start with perl6-internals as usual, before bracing ourselves for the increased volume and ploughing on into...",
      "url" : "https://www.perl.com/pub/2003/03/p6pdigest/20030316",
      "epoch" : 1047801600,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2003/03/p6pdigest/20030316"
   },
   {
      "epoch" : 1047542400,
      "authors" : [
         "dave-rolsky"
      ],
      "url_path" : "/pub/2003/03/13/datetime",
      "url" : "https://www.perl.com/pub/2003/03/13/datetime",
      "description" : " Some Basic Concepts In order to understand what you might want to do with dates and times, it's good to have a handle on some basic concepts. Here are some terms that I'll be using in this article: datetime...",
      "categories" : "cpan",
      "title" : "The Many Dates and Times of Perl",
      "tags" : []
   },
   {
      "categories" : "perl-6",
      "description" : " Ooh look, it's another of those Perl 6 Summaries where Piers tries to work a gratuitous reference to Leon Brocard into a summary of what's been happening to the Perl 6 development process this week. As tradition dictates, we'll...",
      "title" : "This week on Perl 6, week ending 2003-03-09",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "epoch" : 1047196800,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2003/03/p6pdigest/20030309",
      "url" : "https://www.perl.com/pub/2003/03/p6pdigest/20030309"
   },
   {
      "tags" : [
         "perl-6-apocalypse-subroutines"
      ],
      "title" : "Apocalypse 6",
      "description" : " Editor's Note: this Apocalypse is out of date and remains here for historic reasons. See Synopsis 06 for the latest information. This is the Apocalypse on Subroutines. In Perl culture the term &quot;subroutine&quot; conveys the general notion of calling...",
      "categories" : "perl-6",
      "url" : "https://www.perl.com/pub/2003/03/07/apocalypse6",
      "url_path" : "/pub/2003/03/07/apocalypse6",
      "authors" : [
         "larry-wall"
      ],
      "epoch" : 1047024000
   },
   {
      "authors" : [
         "stas-bekman"
      ],
      "url_path" : "/pub/2003/03/04/mod/perl",
      "epoch" : 1046764800,
      "url" : "https://www.perl.com/pub/2003/03/04/mod/perl",
      "description" : " In this article we continue talking about how to optimize your site for performance without touching code, buying new hardware or telling casts. A few simple httpd.conf configuration changes can improve the performance tremendously. Choosing MinSpareServers, MaxSpareServers and StartServers...",
      "categories" : "web",
      "title" : "Improving mod_perl Sites' Performance: Part 8",
      "tags" : [
         "mod-perl-apache-performance"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2003/03/p6pdigest/20030302",
      "url_path" : "/pub/2003/03/p6pdigest/20030302",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1046678400,
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-03-02",
      "categories" : "perl-6",
      "description" : " Welcome back to another episode in the ongoing saga that is the Perl 6 development process (or at least my attempt to describe it). We kick off with perl6-internals. IMCC calling conventions Piers Cawley attempted to describe tail call..."
   },
   {
      "categories" : "science",
      "description" : " This is a book I have been looking forward to for a long time. Back when James Tisdall had just finished his Beginning Perl for Bioinformatics, I asked him to write an article about how to get into bioinf...",
      "tags" : [
         "books-and-magazines"
      ],
      "title" : "Genomic Perl",
      "epoch" : 1046332800,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2003/02/27/review",
      "url" : "https://www.perl.com/pub/2003/02/27/review"
   },
   {
      "description" : " Another week, another Perl 6 Summary, in which you'll find gratuitous mentions of Leon Brocard, awed descriptions of what Leopold T&ouml;tsch got up to and maybe even a summary of what's been happening in Perl 6 design and development....",
      "categories" : "perl-6",
      "title" : "This week on Perl 6, week ending 2003-02-23",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "epoch" : 1045987200,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2003/02/p6pdigest/20030223",
      "url" : "https://www.perl.com/pub/2003/02/p6pdigest/20030223"
   },
   {
      "categories" : "tooling",
      "description" : " Building a Vector Space Search Engine in Perl A Few Words About Vectors Getting Down To Business Building the Search Engine Making it Better Further Reading Why waste time reinventing the wheel, when you could be reinventing the engine?...",
      "tags" : [
         "search-engine-vector-space"
      ],
      "title" : "Building a Vector Space Search Engine in Perl",
      "url_path" : "/pub/2003/02/19/engine",
      "authors" : [
         "maciej-ceglowski"
      ],
      "epoch" : 1045641600,
      "url" : "https://www.perl.com/pub/2003/02/19/engine"
   },
   {
      "url" : "https://www.perl.com/pub/2003/02/p6pdigest/20030216",
      "epoch" : 1045382400,
      "url_path" : "/pub/2003/02/p6pdigest/20030216",
      "authors" : [
         "piers-cawley"
      ],
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-02-16",
      "categories" : "perl-6",
      "description" : "Welcome to the all new, entirely unaltered, all singing, all dancing Perl 6 summary. Your beacon of reliability in the crazy world that is Perl 6 design and development. Another quiet week. Even quieter than last week in fact, unless..."
   },
   {
      "tags" : [
         "module-build-makemaker"
      ],
      "title" : "Module::Build",
      "categories" : "tooling",
      "description" : " Dave Rolsky is a co-author of the recently released Embedding Perl in HTML with Mason. This article was originally published in February of 2003, and was updated by Dave Rolsky and Michael Schwern in January, 2008. If you've ever...",
      "url" : "https://www.perl.com/pub/2003/02/12/module1",
      "epoch" : 1045036800,
      "authors" : [
         "dave-rolsky"
      ],
      "url_path" : "/pub/2003/02/12/module1"
   },
   {
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2003/02/p6pdigest/20030209",
      "epoch" : 1044777600,
      "url" : "https://www.perl.com/pub/2003/02/p6pdigest/20030209",
      "description" : " Welcome to the latest Perl 6 summary, your handy cut out and keep guide to the goings on in the crazy world of Perl 6 design and development. It's been a rather quiet week this week; only 75 messages...",
      "categories" : "perl-6",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-02-09"
   },
   {
      "url" : "https://www.perl.com/pub/2003/02/05/mod/perl",
      "epoch" : 1044432000,
      "url_path" : "/pub/2003/02/05/mod/perl",
      "authors" : [
         "stas-bekman"
      ],
      "title" : "Improving mod_perl Sites' Performance: Part 7",
      "tags" : [
         "mod-perl-apache-performance"
      ],
      "description" : " Correct configuration of the MinSpareServers, MaxSpareServers, StartServers, MaxClients, and MaxRequestsPerChild parameters is very important. There are no defaults. If they are too low, then you will underutilize the system's capabilities. If they are too high, then chances are that...",
      "categories" : "web"
   },
   {
      "url" : "https://www.perl.com/pub/2003/02/p6pdigest/20030202",
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2003/02/p6pdigest/20030202",
      "epoch" : 1044172800,
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-02-02",
      "description" : " Parrot Objects (noun, not verb) Piers Cawley worried about class private attributes and asked it it was still going to be possible to write an object serializing tool that wouldn't require tons of Perl class overloads. Dan said that...",
      "categories" : "perl-6"
   },
   {
      "epoch" : 1043913600,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2003/01/30/review",
      "url" : "https://www.perl.com/pub/2003/01/30/review",
      "description" : " Disclaimer: As you know, each month I try to review a recently published Perl book, and I aim to cover all the majors as they come out. The book that's fallen onto my desk for review this month is...",
      "categories" : "web",
      "title" : "Embedding Perl in HTML with Mason",
      "tags" : [
         "books-and-magazines"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2003/01/p6pdigest/20030126",
      "epoch" : 1043568000,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2003/01/p6pdigest/20030126",
      "title" : "This week on Perl 6, week ending 2003-01-26",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "description" : " Welcome to the first Perl 6 summary of the new 'Copious Free Time enabled' era, which should mean that these summaries will get mailed out on Monday evening from now on. We start, as usual, with perl6-internals The eval...",
      "categories" : "perl-6"
   },
   {
      "url" : "https://www.perl.com/pub/2003/01/22/mechanize",
      "url_path" : "/pub/2003/01/22/mechanize",
      "authors" : [
         "chris-ball"
      ],
      "epoch" : 1043222400,
      "title" : "Screen-scraping with WWW::Mechanize",
      "tags" : [
         "screen-scraping-web-mechanize"
      ],
      "categories" : "web",
      "description" : " Screen-scraping is the process of emulating an interaction with a Web site - not just downloading pages, but filling out forms, navigating around the site, and dealing with the HTML received as a result. As well as for traditional..."
   },
   {
      "description" : "Summary time again, damn but those tuits are hard to round up. Guess, what? perl6-internals comes first. 141 messages this week versus the language list's 143. Objects (again) Objects were still very much on everyone's mind as the discussions of...",
      "categories" : "perl-6",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-01-19",
      "url_path" : "/pub/2003/01/p6pdigest/20020319",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1042963200,
      "url" : "https://www.perl.com/pub/2003/01/p6pdigest/20020319"
   },
   {
      "description" : " It's been nearly six months since the release of Perl 5.8.0, but many people still haven't upgraded to it. We'll take a look at some of the new features it provides and describe why you should investigate them yourself....",
      "categories" : "community",
      "tags" : [
         "5-8-0-upgrade-features"
      ],
      "title" : "What's new in Perl 5.8.0",
      "epoch" : 1042704000,
      "url_path" : "/pub/2003/01/16/whatsnew",
      "authors" : [
         "artur-bergman"
      ],
      "url" : "https://www.perl.com/pub/2003/01/16/whatsnew"
   },
   {
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2003/01/p6pdigest/20020312",
      "epoch" : 1042358400,
      "url" : "https://www.perl.com/pub/2003/01/p6pdigest/20020312",
      "description" : " ... And we're back. Yup, it's summary time again. We'll dive straight in with perl6-internals (as if you expected anything else). More Thoughts on DOD Leopold T&ouml;tsch posted a test program showing the effects of PMC size and timing...",
      "categories" : "perl-6",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6, week ending 2003-01-12"
   },
   {
      "epoch" : 1042012800,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2003/01/p6pdigest/20020308",
      "url" : "https://www.perl.com/pub/2003/01/p6pdigest/20020308",
      "description" : "Hello, and welcome to the first summary of 2003; welcome to the future. This summary covers two weeks, but they've been quiet what with Christmas and the New Year's. So, starting as usual with perl6-internals A Pile of Patches to...",
      "categories" : "perl-6",
      "title" : "This week on Perl 6, weeks ending 2003-01-05",
      "tags" : [
         "perl-6-internals-parrot"
      ]
   },
   {
      "epoch" : 1041926400,
      "url_path" : "/pub/2003/01/07/mod/perl",
      "authors" : [
         "stas-bekman"
      ],
      "url" : "https://www.perl.com/pub/2003/01/07/mod/perl",
      "categories" : "web",
      "description" : " It's desirable to avoid forking under mod_perl, as when you do, you are forking the entire Apache server - lock, stock and barrel. Not only is your Perl code and Perl interpreter being duplicated, but so is mod_ssl, mod_rewrite,...",
      "tags" : [
         "mod-perl-fork"
      ],
      "title" : "Improving mod_perl Sites' Performance: Part 6"
   },
   {
      "url" : "https://www.perl.com/pub/2002/12/18/hohoho",
      "authors" : [
         "alex-gough"
      ],
      "url_path" : "/pub/2002/12/18/hohoho",
      "epoch" : 1040198400,
      "tags" : [
         "christmas-success-santa"
      ],
      "title" : "How Perl Powers Christmas",
      "categories" : "community",
      "description" : " You know, it's not easy having the happiness of billions of children around the world resting with your organization, and it's even harder on the IT department. The incorporated elves and pixiefolk of the North Pole, under the direction..."
   },
   {
      "url" : "https://www.perl.com/pub/2002/12/11/mason",
      "epoch" : 1039593600,
      "url_path" : "/pub/2002/12/11/mason",
      "authors" : [
         "dave-rolsky"
      ],
      "title" : "Programming with Mason",
      "tags" : [
         "embedding-perl",
         "html",
         "mason",
         "perl"
      ],
      "categories" : "web",
      "description" : " Dave Rolsky and Ken Williams are the authors of Embedding Perl in HTML with Mason. Mason is a powerful framework for generating dynamic text, and is especially useful when creating complex, featureful Web sites. For those (hopefully few) folks..."
   },
   {
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6 (12/02-08, 2002)",
      "categories" : "perl-6",
      "description" : " Another Monday evening. Another summary to write. Starting, as is becoming tediously predictable, with perl6-internals. Another JIT Discussion Toward the end of the previous week, Leopold T&ouml;tsch posted something about the latest round of changes to the JIT core....",
      "url" : "https://www.perl.com/pub/2002/12/p6pdigest/20021208",
      "epoch" : 1039334400,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2002/12/p6pdigest/20021208"
   },
   {
      "epoch" : 1038988800,
      "authors" : [
         "stas-bekman"
      ],
      "url_path" : "/pub/2002/12/04/mod/perl",
      "url" : "https://www.perl.com/pub/2002/12/04/mod/perl",
      "description" : "Sharing Memory As we have learned in the previous article, sharing memory helps us save memory with mod_perl, giving us a huge speed increase; but we pay the price with a big memory footprint. I presented a few techniques to...",
      "categories" : "web",
      "title" : "Improving mod_perl Sites' Performance: Part 5",
      "tags" : [
         "mod-perl-shared-memory"
      ]
   },
   {
      "url_path" : "/pub/2002/12/p6pdigest/20021201",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1038729600,
      "url" : "https://www.perl.com/pub/2002/12/p6pdigest/20021201",
      "categories" : "perl-6",
      "description" : "Oh look, it's only Monday evening and Piers has started writing this week's summary. What is the world coming to? As usual, we start with the internals list. C#/Parrot Status During last week's discussion of C# and Parrot, Nicholas Clark...",
      "title" : "This week on Perl 6 (11/24-12/01, 2002)",
      "tags" : [
         "perl-6-internals-parrot"
      ]
   },
   {
      "epoch" : 1038384000,
      "authors" : [
         "tony-bowden"
      ],
      "url_path" : "/pub/2002/11/27/classdbi",
      "url" : "https://www.perl.com/pub/2002/11/27/classdbi",
      "description" : " Several articles on Perl.com, including the recent Phrasebook Design Pattern, have discussed the problems faced when writing Perl code that interacts with a database. Terrence Brannon's DBIx::Recordset article attempted to show how code dealing with databases can be made...",
      "categories" : "data",
      "title" : "Class::DBI",
      "tags" : [
         "database-class-poop-class-dbi"
      ]
   },
   {
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2002/11/p6pdigest/20021127",
      "epoch" : 1038384000,
      "url" : "https://www.perl.com/pub/2002/11/p6pdigest/20021127",
      "description" : " And some rough beast, its hour come 'round at last slouches toward... And then the scansion goes to pot and I can't make a joke fit. Shame. Anyhoo, it's time for another episode of the continuing saga of Perl...",
      "categories" : "perl-6",
      "title" : "This week on Perl 6 (11/17-11/23, 2002)",
      "tags" : [
         "perl-6-internals-parrot"
      ]
   },
   {
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6 (11/10-11/17, 2002)",
      "description" : "&quot;Oh! my ears and whiskers, I'm late!&quot; It's 0650, it's 20021120 and I've only just started writing the summary. Call me lazy, call me a shirker, call me anything you damn well please, just don't interrupt me while I'm writing...",
      "categories" : "perl-6",
      "url" : "https://www.perl.com/pub/2002/11/p6pdigest/20021121",
      "epoch" : 1037865600,
      "url_path" : "/pub/2002/11/p6pdigest/20021121",
      "authors" : [
         "piers-cawley"
      ]
   },
   {
      "tags" : [
         "dns-zonefile-bind"
      ],
      "title" : "Managing Bulk DNS Zones with Perl",
      "description" : "A History of Forward and Reverse DNS When an Internet server receives an incoming connection from a client, it may take a precaution of verifying the identity of the client. Some protocols simply trust the client to provide proper credentials...",
      "categories" : "networking",
      "url" : "https://www.perl.com/pub/2002/11/20/dns",
      "epoch" : 1037779200,
      "authors" : [
         "chris-josephes"
      ],
      "url_path" : "/pub/2002/11/20/dns"
   },
   {
      "url" : "https://www.perl.com/pub/2002/11/p6pdigest/20021115",
      "epoch" : 1037347200,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2002/11/p6pdigest/20021115",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6 (11/03-11/10, 2002)",
      "categories" : "perl-6",
      "description" : " Far off in distant Newark, a figure muttering something about 'Leon Brocard' shambles across a railway bridge and makes its way into a waiting room. Time passes. After a while, a train arrives and the figure shambles on board,..."
   },
   {
      "url" : "https://www.perl.com/pub/2002/11/14/exception",
      "authors" : [
         "arun-udaya-shankar"
      ],
      "url_path" : "/pub/2002/11/14/exception",
      "epoch" : 1037260800,
      "tags" : [],
      "title" : "Object Oriented Exception Handling in Perl",
      "categories" : "development",
      "description" : " The main goal of this article is to discuss in detail about exception handling in Perl and how to implement it using Error.pm. On our way, we'll be touching upon the advantages of using exception-handling over traditional error-handling mechanisms,..."
   },
   {
      "url" : "https://www.perl.com/pub/2002/11/06/review",
      "url_path" : "/pub/2002/11/06/review",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 1036569600,
      "title" : "Writing Perl Modules for CPAN",
      "tags" : [],
      "categories" : "cpan",
      "description" : "As Andy Lester points out in this month's Perl Review, one big advantage of there being so many Perl books around is that the publishers can now get around to putting out books on some of the more &quot;niche&quot; areas..."
   },
   {
      "url" : "https://www.perl.com/pub/2002/11/p6pdigest/20021107",
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2002/11/p6pdigest/20021107",
      "epoch" : 1036569600,
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6 (10/28-11/03, 2002)",
      "description" : " Welcome to the latest of the ongoing series of Perl 6 summaries, in which your arrogant moderator does battle with the forces of prolixity in a Brobdingnagian attempt to tame the tortuously tangled threads of Perl 6's design and...",
      "categories" : "perl-6"
   },
   {
      "epoch" : 1036396800,
      "url_path" : "/pub/2002/11/p6pdigest/20021027",
      "authors" : [
         "piers-cawley"
      ],
      "url" : "https://www.perl.com/pub/2002/11/p6pdigest/20021027",
      "categories" : "perl-6",
      "description" : " You may have noticed that this summary is late. Um ... [looks sheepish, shuffles feet], the dog ate my homework. I did a tiny bit of procrastination at the beginning of the week and then got totally overtaken by...",
      "title" : "This week on Perl 6 (10/20-27, 2002)",
      "tags" : [
         "perl-6-internals-parrot"
      ]
   },
   {
      "categories" : "perl-6",
      "description" : " A few concepts in Perl 6 are strange at first sight. They seem hard to understand, but it's only because they're new and different. They aren't deep mystical concepts known only to Tibetan lamas. Anyone can understand them, but...",
      "tags" : [
         "topic-topicalizer"
      ],
      "title" : "On Topic",
      "authors" : [
         "allison-randal"
      ],
      "url_path" : "/pub/2002/10/30/topic",
      "epoch" : 1035964800,
      "url" : "https://www.perl.com/pub/2002/10/30/topic"
   },
   {
      "url" : "https://www.perl.com/pub/2002/10/22/phrasebook",
      "epoch" : 1035273600,
      "url_path" : "/pub/2002/10/22/phrasebook",
      "authors" : [
         "rani-pinchuk"
      ],
      "tags" : [
         "phrasebook-languages"
      ],
      "title" : "The Phrasebook Design Pattern",
      "categories" : "development",
      "description" : " Have you ever written a Perl application that connects to a database? If so, then you probably faced a problem of having some code like: $statement = q(select isbn from book where title = 'Design Patterns'); $sth = $dbh-&gt;prepare($statement)..."
   },
   {
      "url" : "https://www.perl.com/pub/2002/10/p6pdigest/20021016",
      "url_path" : "/pub/2002/10/p6pdigest/20021016",
      "authors" : [
         "leon-brocard"
      ],
      "epoch" : 1034755200,
      "title" : "This week on Perl 6 (10/7-14, 2002)",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "description" : "This is yet another Perl 6 summary documenting what has happened over on the perl6-internals (where Parrot, the virtual machine that will run Perl 6 is discussed) and perl6-language (where Perl 6 language design is discussed) mailing lists. Piers is...",
      "categories" : "perl-6"
   },
   {
      "url" : "https://www.perl.com/pub/2002/10/15/radiator",
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2002/10/15/radiator",
      "epoch" : 1034668800,
      "tags" : [
         "radiator-radius-commercial-enterprise"
      ],
      "title" : "Radiator",
      "categories" : "community",
      "description" : " Are you fed up with those who think that commercial applications need to be written in an \"enterprise\" language such as Java or C++? While we're big fans of open source at Perl.com, we're bigger fans of Perl, and..."
   },
   {
      "tags" : [
         "komodo-ide"
      ],
      "title" : "A Review of Komodo",
      "categories" : "tooling",
      "description" : "Every time I get a new copy of ActiveState's Komodo IDE, I do a review that invariably ends &quot;this would be the perfect IDE for me if I were the sort of person who used IDEs&quot;. And every time I...",
      "url" : "https://www.perl.com/pub/2002/10/09/komodo",
      "url_path" : "/pub/2002/10/09/komodo",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 1034150400
   },
   {
      "categories" : "perl-6",
      "description" : "This is yet another Perl 6 summary, documenting what has happened over on the perl6-internals (where Parrot, the virtual machine that will run Perl 6, is discussed) and perl6-language (where Perl 6 language design is discussed) mailing lists. Piers is...",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6 (9/30 - 10/6, 2002)",
      "authors" : [
         "leon-brocard"
      ],
      "url_path" : "/pub/2002/10/p6pdigest/20021006",
      "epoch" : 1033891200,
      "url" : "https://www.perl.com/pub/2002/10/p6pdigest/20021006"
   },
   {
      "url_path" : "/pub/2002/10/01/hashes",
      "authors" : [
         "abhijit-menon-sen"
      ],
      "epoch" : 1033459200,
      "url" : "https://www.perl.com/pub/2002/10/01/hashes",
      "description" : " It's easy to take hashes for granted in Perl. They are simple, fast, and they usually &quot;just work,&quot; so people never need to know or care about how they are implemented. Sometimes, though, it's interesting and rewarding to look...",
      "categories" : "development",
      "title" : "How Hashes Really Work",
      "tags" : [
         "hashes-hash"
      ]
   },
   {
      "categories" : "perl-6",
      "description" : " Okay, this is my last summary before I take a couple of week's holiday away from any form of connectivity. Will I cope? Can my system stand going cold turkey? Can you live without my summaries? Luckily, Leon Brocard...",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6 (9/23 - 9/29, 2002)",
      "epoch" : 1033286400,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2002/09/p6pdigest/20020929",
      "url" : "https://www.perl.com/pub/2002/09/p6pdigest/20020929"
   },
   {
      "url_path" : "/pub/2002/09/24/axkit",
      "authors" : [
         "barrie-slaymaker"
      ],
      "epoch" : 1032854400,
      "url" : "https://www.perl.com/pub/2002/09/24/axkit",
      "description" : " AxKit is not limited to working with pure XML data. Starting with this article, we'll work with and around non-XML data by developing an image browser that works with two types of non-XML data: a directory listing built from...",
      "categories" : "data",
      "title" : "An AxKit Image Gallery",
      "tags" : []
   },
   {
      "categories" : "perl-6",
      "description" : " So, another week, another Perl 6 summary. Let's see if I can get through this one without calling Tim Bunce 'Tim Bunch' shall we? Or maybe I should leave a couple of deliberate errors in as a less than...",
      "title" : "This week on Perl 6 (9/16 - 9/22, 2002)",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "epoch" : 1032681600,
      "url_path" : "/pub/2002/09/p6pdigest/20020922",
      "authors" : [
         "piers-cawley"
      ],
      "url" : "https://www.perl.com/pub/2002/09/p6pdigest/20020922"
   },
   {
      "tags" : [],
      "title" : "Embedding Web Servers",
      "categories" : "web",
      "description" : " As with most of my previous articles, this one grew out of a project at my $DAY_JOB. The project du-jour involves large dependency graphs, often containing thousands of nodes and edges. Some of the relationships are automatically generated and...",
      "url" : "https://www.perl.com/pub/2002/09/17/ewispp",
      "epoch" : 1032336000,
      "authors" : [
         "robert-spier"
      ],
      "url_path" : "/pub/2002/09/17/ewispp"
   },
   {
      "url" : "https://www.perl.com/pub/2002/09/p6pdigest/20020915",
      "epoch" : 1032076800,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2002/09/p6pdigest/20020915",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6 (9/9 - 9/15, 2002)",
      "categories" : "perl-6",
      "description" : " Happy birthday to me! // Happy birthday to me! // Happy birthday, dear meeeee! // Happy birthday to me! And, with a single breech of copyright, Piers was free. The production of this summary was delayed by my turning..."
   },
   {
      "url" : "https://www.perl.com/pub/2002/09/11/log4perl",
      "url_path" : "/pub/2002/09/11/log4perl",
      "authors" : [
         "michael-schilli"
      ],
      "epoch" : 1031731200,
      "tags" : [
         "log4perl-log4j-logging"
      ],
      "title" : "Retire your debugger, log smartly with Log::Log4perl!",
      "categories" : "debugging",
      "description" : "You've rolled out an application and it produces mysterious, sporadic errors? That's pretty common, even if fairly well-tested applications are exposed to real-world data. How can you track down when and where exactly your problem occurs? What kind of user..."
   },
   {
      "categories" : "web",
      "description" : " It seems every month or so, there's a new Perl and CGI book out; huge thick volumes promising to teach you all you need to know about programming for the Web in 24 hours. They all start with \"Hello...",
      "title" : "Writing CGI Applications with Perl",
      "tags" : [],
      "epoch" : 1031644800,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2002/09/10/review",
      "url" : "https://www.perl.com/pub/2002/09/10/review"
   },
   {
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6 (9/1 - 9/8, 2002)",
      "categories" : "perl-6",
      "description" : " Well, what a week it's been, eh, people? Larry's been telling the Slashdot crowd about quantum God and big knobs, there's been a call for Perl 6 programmers on Perlmonks (http://makeashorterlink.com/), and the Octarine parrot took flight. So, let's...",
      "url" : "https://www.perl.com/pub/2002/09/p6pdigest/20020908",
      "epoch" : 1031472000,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2002/09/p6pdigest/20020908"
   },
   {
      "url_path" : "/pub/2002/09/04/perlfororacle",
      "authors" : [
         "andy-duncan"
      ],
      "epoch" : 1031126400,
      "url" : "https://www.perl.com/pub/2002/09/04/perlfororacle",
      "categories" : "data",
      "description" : " Andy Duncan is the co-author of Perl for Oracle DBAs. My coauthor, Jared Still, and I had the task of writing a book, Perl for Oracle DBAs, about two of our favorite subjects, Perl and Oracle. Our goal was...",
      "tags" : [
         "oracle",
         "oracle-dba",
         "perl"
      ],
      "title" : "The Fusion of Perl and Oracle"
   },
   {
      "url" : "https://www.perl.com/pub/2002/09/04/threads",
      "authors" : [
         "sam-tregar"
      ],
      "url_path" : "/pub/2002/09/04/threads",
      "epoch" : 1031126400,
      "title" : "Going Up?",
      "tags" : [
         "elevator-threading-threads-simulation"
      ],
      "description" : " Perl 5.8.0 is the first version of Perl with a stable threading implementation. Threading has the potential to change the way we program in Perl, and even the way we think about programming. This article explores Perl's new threading...",
      "categories" : "development"
   },
   {
      "url" : "https://www.perl.com/pub/2002/09/p6pdigest/20020901",
      "epoch" : 1030867200,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2002/09/p6pdigest/20020901",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6 (8/26 - 9/1, 2002)",
      "description" : " Well, it has been a week. Damian came to London and made our heads spin; perl6-language erupted in a flurry of interesting, high signal/noise threads; Parrot reached its 0.0.8 release; Larry made many of his wonderfully unexpected but obviously...",
      "categories" : "perl-6"
   },
   {
      "url" : "https://www.perl.com/pub/2002/08/27/filtering",
      "epoch" : 1030435200,
      "url_path" : "/pub/2002/08/27/filtering",
      "authors" : [
         "michael-stevens"
      ],
      "title" : "Mail Filtering",
      "tags" : [
         "mail-filtering",
         "mail-and-usenet-news"
      ],
      "description" : " There are many ways to filter your e-mail with Perl. Two of the more popular and interesting ways are to use PerlMx or Mail::Audit. I took a long look at both, and this is what I thought of them....",
      "categories" : "email"
   },
   {
      "url" : "https://www.perl.com/pub/2002/08/22/exegesis5",
      "epoch" : 1030003200,
      "authors" : [
         "damian-conway"
      ],
      "url_path" : "/pub/2002/08/22/exegesis5",
      "title" : "Exegesis 5",
      "tags" : [
         "apocalypse-exegesis-regular-expressions"
      ],
      "categories" : "perl-6",
      "description" : " Editor's note: this document is out of date and remains here for historic interest. See Synopsis 5 for the current design information. Exegesis 5 What's the diff? Starting gently Lay it out for me Interpolate ye not ... The..."
   },
   {
      "url" : "https://www.perl.com/pub/2002/08/20/perlandlwp",
      "url_path" : "/pub/2002/08/20/perlandlwp",
      "authors" : [
         "sean-m--burke"
      ],
      "epoch" : 1029830400,
      "tags" : [
         "library-for-www-in-perl",
         "lwp",
         "perl",
         "perl-and-lwp"
      ],
      "title" : "Web Basics with LWP",
      "categories" : "web",
      "description" : " Sean M. Burke is the author of Perl&nbsp;&amp;&nbsp;LWP Introduction LWP (short for \"Library for WWW in Perl\") is a popular group of Perl modules for accessing data on the Web. Like most Perl module-distributions, each of LWP's component modules..."
   },
   {
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6 (week ending 2002-08-18)",
      "description" : "The story so far... Larry, Tom, Randal, Damian, Jon, Chip, Gnat, Ziggy, Dick and the rest of the gang were chatting with all the other cool Perl kids about where Perl was and should be going. Then Jon threw a...",
      "categories" : "perl-6",
      "url" : "https://www.perl.com/pub/2002/08/p6pdigest/20020818",
      "url_path" : "/pub/2002/08/p6pdigest/20020818",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1029657600
   },
   {
      "title" : "Acme::Comment",
      "tags" : [
         "commenting-multiline-comment-acme"
      ],
      "categories" : "development",
      "description" : " /* This is a Perl comment */ Commenting in Perl \"But what?\", I hear you think, \"Perl doesn't have multi-line comments!\" That's true. Perl doesn't have multiline comments. But why is that? What is wrong with them? Mostly, it...",
      "url" : "https://www.perl.com/pub/2002/08/13/comment",
      "authors" : [
         "jos-boumans"
      ],
      "url_path" : "/pub/2002/08/13/comment",
      "epoch" : 1029225600
   },
   {
      "title" : "This week on Perl 6 (week ending 2002-08-11)",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "categories" : "perl-6",
      "description" : " Far out in the uncharted backwaters of the unfashionable end of the Western Spiral arm of the Galaxy lies a small unregarded yellow sun. Orbiting this at a distance of roughly ninety-eight million miles is an utterly insignificant little...",
      "url" : "https://www.perl.com/pub/2002/08/p6pdigest/20020811",
      "epoch" : 1029052800,
      "url_path" : "/pub/2002/08/p6pdigest/20020811",
      "authors" : [
         "piers-cawley"
      ]
   },
   {
      "description" : " In your time as a Perl programmer, it becomes almost inevitable that at some point you will have to manage in-memory tree structures of some sort. When you do this, it becomes important to be aware of how Perl...",
      "categories" : "development",
      "title" : "Proxy Objects",
      "tags" : [
         "proxy-objects-pattern-circular-references"
      ],
      "url_path" : "/pub/2002/08/07/proxyobject",
      "authors" : [
         "matt-sergeant"
      ],
      "epoch" : 1028707200,
      "url" : "https://www.perl.com/pub/2002/08/07/proxyobject"
   },
   {
      "url" : "https://www.perl.com/pub/2002/07/p6pdigest/20020805",
      "epoch" : 1028534400,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2002/07/p6pdigest/20020805",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This week on Perl 6 (week ending 2002-08-04)",
      "categories" : "perl-6",
      "description" : " Back on the regular schedule complete with new and improved article links via those lovely people at Google groups. Hopefully, we'll be staying on this schedule for the foreseeable future. As usual, we'll kick off with perl6-internals, which was,..."
   },
   {
      "title" : "Improving mod_perl Sites' Performance: Part 4",
      "tags" : [
         "mod-perl-shared-memory"
      ],
      "categories" : "web",
      "description" : " Introduction If your OS supports sharing of memory (and most sane systems do), you might save a lot of RAM by sharing it between child processes. This will allow you to run more processes and hopefully better satisfy the...",
      "url" : "https://www.perl.com/pub/2002/07/30/mod/perl",
      "authors" : [
         "stas-bekman"
      ],
      "url_path" : "/pub/2002/07/30/mod/perl",
      "epoch" : 1028016000
   },
   {
      "url_path" : "/pub/2002/07/p6pdigest/20020723",
      "authors" : [
         "leon-brocard"
      ],
      "epoch" : 1027411200,
      "url" : "https://www.perl.com/pub/2002/07/p6pdigest/20020723",
      "categories" : "perl-6",
      "description" : " Another week, another Perl 6 summary. Cunningly this week I have taken over the summary from Piers in order to make it easier for me to namecheck myself. It's been a good week too, with more happening in perl6-internals...",
      "title" : "This week on Perl 6 (week ending 2002-07-21)",
      "tags" : [
         "perl-6-internals-parrot"
      ]
   },
   {
      "tags" : [],
      "title" : "Graphics Programming with Perl",
      "categories" : "graphics",
      "description" : " I recently received Martien Verbruggen's long-awaited \"Graphics Programming in Perl,\" and I wasn't quite sure what to make of it. As he notes himself, \"I didn't think there would be enough coherent material to write such a book, and...",
      "url" : "https://www.perl.com/pub/2002/07/23/review",
      "url_path" : "/pub/2002/07/23/review",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 1027411200
   },
   {
      "categories" : "web",
      "description" : " In this article we will continue the topic started in the previous article. This time we talk about tools that help us with code profiling and memory usage measuring. Code Profiling Techniques The profiling process helps you to determine...",
      "tags" : [
         "mod-perl-benchmarking-test"
      ],
      "title" : "Improving mod_perl Sites' Performance: Part 3",
      "authors" : [
         "stas-bekman"
      ],
      "url_path" : "/pub/2002/07/16/mod/perl",
      "epoch" : 1026806400,
      "url" : "https://www.perl.com/pub/2002/07/16/mod/perl"
   },
   {
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2002/07/p6pdigest/20020714",
      "epoch" : 1026633600,
      "url" : "https://www.perl.com/pub/2002/07/p6pdigest/20020714",
      "categories" : "perl-6",
      "description" : " Still waiting for Exegesis 5? Is Parrot a second system? Don't mix labels and comments Perl 6 grammar, take 5 So, what is IMCC then? Vtables and multimethod dispatch Building support for non-native bytecode Mutable vs. immutable strings Adding...",
      "title" : "This Week on Perl 6 (8 - 14 Jul 2002)",
      "tags" : [
         "perl-6-internals-parrot"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2002/07/10/tmo",
      "epoch" : 1026288000,
      "authors" : [
         "chromatic"
      ],
      "url_path" : "/pub/2002/07/10/tmo",
      "tags" : [
         "oo-testing"
      ],
      "title" : "A Test::MockObject Illustrated Example",
      "description" : "Perl's Test::MockObject CPAN module helps you test troublesome interfaces. Learn how it works!",
      "categories" : "tooling"
   },
   {
      "title" : "This week on Perl 6 ~(24-30 June 2002)",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "categories" : "perl-6",
      "description" : "Notes Experimenting with a slightly different format this week (theft from NTKnow considered sensible ...), I'll also be looking at some of the things that've been posted on use.perl.org (and I'd really appreciate some reports on the YAPC Perl6 chats...",
      "url" : "https://www.perl.com/pub/2002/07/p6pdigest/20020702",
      "url_path" : "/pub/2002/07/p6pdigest/20020702",
      "authors" : [
         "piers-cawley"
      ],
      "epoch" : 1025596800
   },
   {
      "tags" : [],
      "title" : "Taglib TMTOWTDI",
      "description" : " As with many Perl systems, AxKit often provides multiple ways of doing things. Developers from other programming cultures may find these choices and freedom a bit bewildering at first but this (hopefully) soon gives way to the realization that...",
      "categories" : "data",
      "url" : "https://www.perl.com/pub/2002/07/02/axkit",
      "url_path" : "/pub/2002/07/02/axkit",
      "authors" : [
         "barrie-slaymaker"
      ],
      "epoch" : 1025596800
   },
   {
      "title" : "Synopsis 5",
      "tags" : [
         "pattern-matching-apocalypse"
      ],
      "description" : " Editor's note: this document is out of date and remains here for historic interest. See Synopsis 5 for the current design information. A summary of the changes in Apocalypse 5: Unchanged features Capturing: (...) Repetition quantifiers: *, +, and...",
      "categories" : "perl-6",
      "url" : "https://www.perl.com/pub/2002/06/26/synopsis5",
      "epoch" : 1025078400,
      "authors" : [
         "damian-conway",
         "allison-randal"
      ],
      "url_path" : "/pub/2002/06/26/synopsis5"
   },
   {
      "description" : " In this article we will talk about tools that we need before we can start working on the performance of our service. Essential Tools In order to improve performance, we need measurement tools. The main tool categories are benchmarking...",
      "categories" : "web",
      "title" : "Improving mod_perl Sites' Performance: Part 2",
      "tags" : [
         "mod-perl-benchmarking-test"
      ],
      "epoch" : 1024473600,
      "url_path" : "/pub/2002/06/19/mod/perl",
      "authors" : [
         "stas-bekman"
      ],
      "url" : "https://www.perl.com/pub/2002/06/19/mod/perl"
   },
   {
      "categories" : "development",
      "description" : " One of the big new features in perl 5.8 is that we now have real working threads available to us through the threads pragma. However, for us module authors who already have to support our modules on different versions...",
      "title" : "Where Wizards Fear To Tread",
      "tags" : [
         "threads-ithreads-thread-safety"
      ],
      "epoch" : 1023782400,
      "url_path" : "/pub/2002/06/11/threads",
      "authors" : [
         "artur-bergman"
      ],
      "url" : "https://www.perl.com/pub/2002/06/11/threads"
   },
   {
      "url" : "https://www.perl.com/pub/2002/06/04/apo5",
      "authors" : [
         "larry-wall"
      ],
      "url_path" : "/pub/2002/06/04/apo5",
      "epoch" : 1023177600,
      "title" : "Apocalypse 5",
      "tags" : [
         "apocalypse"
      ],
      "categories" : "perl-6",
      "description" : " Editor's Note: this Apocalypse is out of date and remains here for historic reasons. See Synopsis 05 for the latest information. This is the Apocalypse on Pattern Matching, generally having to do with what we call &quot;regular expressions&quot;, which..."
   },
   {
      "categories" : "web",
      "description" : " In the next series of articles, we are going to talk about mod_perl performance issues. We will try to look at as many aspects of the mod_perl driven service as possible: hardware, software, Perl coding and finally the mod_perl...",
      "tags" : [
         "mod-perl-optimizing"
      ],
      "title" : "Improving mod_perl Sites' Performance: Part 1",
      "epoch" : 1022659200,
      "url_path" : "/pub/2002/05/29/mod/perl-opt",
      "authors" : [
         "stas-bekman"
      ],
      "url" : "https://www.perl.com/pub/2002/05/29/mod/perl-opt"
   },
   {
      "categories" : "development",
      "description" : "Maybe you've heard about closures; they're one of those aspects of Perl - like object-oriented programming - that everyone raves about and you can't really see the big deal until you play around with them and then they just click....",
      "title" : "Achieving Closure",
      "tags" : [
         "closure"
      ],
      "url_path" : "/pub/2002/05/29/closure",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 1022659200,
      "url" : "https://www.perl.com/pub/2002/05/29/closure"
   },
   {
      "url" : "https://www.perl.com/pub/2002/05/22/mod/perl-isp",
      "epoch" : 1022054400,
      "url_path" : "/pub/2002/05/22/mod/perl-isp",
      "authors" : [
         "stas-bekman"
      ],
      "tags" : [
         "mod-perl-isp"
      ],
      "title" : "Finding a mod_perl ISP... or Becoming One",
      "categories" : "web",
      "description" : "Introduction In this article we will talk about the nuances of providing mod_perl services and present a few ISPs that successfully provide them. You installed mod_perl on your box at home, and you fell in love with it. So now..."
   },
   {
      "description" : " Introduction This article is the third in our series talking about the essential Perl basics that you should know before starting to program for mod_perl. Variables Globally, Lexically Scoped and Fully Qualified You will hear a lot about namespaces,...",
      "categories" : "web",
      "title" : "The Perl You Need To Know - Part 3",
      "tags" : [
         "mod-perl-perl-do-require-use-lexical-global"
      ],
      "epoch" : 1021449600,
      "authors" : [
         "stas-bekman"
      ],
      "url_path" : "/pub/2002/05/14/mod/perl",
      "url" : "https://www.perl.com/pub/2002/05/14/mod/perl"
   },
   {
      "url" : "https://www.perl.com/pub/2002/05/07/mod/perl",
      "url_path" : "/pub/2002/05/07/mod/perl",
      "authors" : [
         "stas-bekman"
      ],
      "epoch" : 1020758400,
      "tags" : [
         "mod-perl-perl-subroutines-stay-shared"
      ],
      "title" : "The Perl You Need To Know - Part 2",
      "categories" : "web",
      "description" : " Introduction In this article, we continue to talk about the essential Perl basics that you should know before starting to program for mod_perl. Tracing Warnings Reports Sometimes it's hard to understand what a warning is complaining about. You see..."
   },
   {
      "url" : "https://www.perl.com/pub/2002/05/07/optree",
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2002/05/07/optree",
      "epoch" : 1020758400,
      "title" : "Where Wizards Fear To Tread",
      "tags" : [
         "op",
         "tree",
         "b",
         "generate",
         "wizards",
         "perl-internals"
      ],
      "categories" : "perl-internals",
      "description" : " So you're a Perl master. You've got XS sorted. You know how the internals work. Hey, there's nothing we can teach you on perl.com that you don't already know. You think? Where Wizards Fear To Tread brings you the..."
   },
   {
      "url" : "https://www.perl.com/pub/2002/04/30/cpants",
      "url_path" : "/pub/2002/04/30/cpants",
      "authors" : [
         "autrijus-tang"
      ],
      "epoch" : 1020153600,
      "tags" : [
         "cpanplus-testing-cpants-cpan"
      ],
      "title" : "Becoming a CPAN Tester with CPANPLUS",
      "categories" : "cpan",
      "description" : " &quot;This is a great war long-planned, and we are but one piece in it, whatever pride may say. ... And now, all realms shall be put to the test.&quot; - Beregond, &lt;&lt;Lord of the Rings&gt;&gt; Introduction In CPANPLUS -..."
   },
   {
      "url" : "https://www.perl.com/pub/2002/04/25/review",
      "epoch" : 1019721600,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2002/04/25/review",
      "tags" : [],
      "title" : "mod_perl Developer's Cookbook",
      "categories" : "web",
      "description" : "I always feel uneasy getting review copies of books like this; review copies of books are for me to look through, tell people how good or bad they are, and then sit on the shelf looking pretty. This book, essentially,..."
   },
   {
      "url" : "https://www.perl.com/pub/2002/04/23/mod/perl",
      "epoch" : 1019548800,
      "authors" : [
         "stas-bekman"
      ],
      "url_path" : "/pub/2002/04/23/mod/perl",
      "title" : "The Perl You Need To Know",
      "tags" : [
         "mod-perl-perl-global-variables"
      ],
      "description" : " Introduction Before I delve into the details of mod_perl programming, it's probably a good idea to review some important Perl basics. You will discover these invaluable when you start coding for mod_perl. I will start with pure Perl notes...",
      "categories" : "web"
   },
   {
      "authors" : [
         "barrie-slaymaker"
      ],
      "url_path" : "/pub/2002/04/16/axkit",
      "epoch" : 1018944000,
      "url" : "https://www.perl.com/pub/2002/04/16/axkit",
      "description" : " In the first article in this series, we saw how to install, configure and test AxKit, and we took a look at a simple processing pipeline. In this article, we will see how to write a simple 10-line XSP...",
      "categories" : "data",
      "title" : "XSP, Taglibs and Pipelines",
      "tags" : []
   },
   {
      "description" : " As you have seen from my previous articles, mod_perl enabled Apache consists of two main components: Perl modules and Apache itself. While installing Apache without root privileges is easy, one should know how to install Perl modules in a...",
      "categories" : "web",
      "tags" : [
         "mod-perl-superuser-root"
      ],
      "title" : "Installing mod_perl without superuser privileges",
      "epoch" : 1018425600,
      "authors" : [
         "stas-bekman"
      ],
      "url_path" : "/pub/2002/04/10/mod/perl",
      "url" : "https://www.perl.com/pub/2002/04/10/mod/perl"
   },
   {
      "epoch" : 1017734400,
      "authors" : [
         "damian-conway"
      ],
      "url_path" : "/pub/2002/04/01/exegesis4",
      "url" : "https://www.perl.com/pub/2002/04/01/exegesis4",
      "categories" : "perl-6",
      "description" : " Editor's note: this document is out of date and remains here for historic interest. See Synopsis 4 for the current design information. And I'd se-ell my-y so-oul for flow of con-tro-ol ... over Perl - The Motels, \"Total Control\"...",
      "title" : "Exegesis 4",
      "tags" : [
         "apocalypse-exegesis-control-flow"
      ]
   },
   {
      "tags" : [
         "cpan-cpanplus"
      ],
      "title" : "CPAN PLUS",
      "description" : " Setting: A warm August day, somewhere in Amsterdam. In the bar of Yet Another Hotel. A large number of people are gathered. Judging by their attire, they're not here for business - or at least not the business of...",
      "categories" : "cpan",
      "url" : "https://www.perl.com/pub/2002/03/26/cpanplus",
      "epoch" : 1017129600,
      "url_path" : "/pub/2002/03/26/cpanplus",
      "authors" : [
         "jos-boumans"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2002/03/22/modperl",
      "epoch" : 1016784000,
      "authors" : [
         "stas-bekman"
      ],
      "url_path" : "/pub/2002/03/22/modperl",
      "tags" : [
         "mod-perl"
      ],
      "title" : "mod_perl in 30 minutes",
      "description" : " Introduction In the previous article, I've shown quite amazing Web performance reports from companies that have deployed mod_perl heavily. You might be surprised but you can quite easily get similarly amazing results if you move your service to mod_perl...",
      "categories" : "web"
   },
   {
      "url" : "https://www.perl.com/pub/2002/03/19/dotnet",
      "epoch" : 1016524800,
      "url_path" : "/pub/2002/03/19/dotnet",
      "authors" : [
         "simon-cozens"
      ],
      "tags" : [
         "net-clr-c"
      ],
      "title" : "A Perl Hacker's Foray into .NET",
      "description" : " No, I haven't sold out; I haven't gone over to the dark side; I haven't been bought. I'm one of the last people to be using closed-source software by choice. But one of the traits of any self-respecting hacker...",
      "categories" : "windows"
   },
   {
      "epoch" : 1016006400,
      "url_path" : "/pub/2002/03/12/axkit",
      "authors" : [
         "barrie-slaymaker"
      ],
      "url" : "https://www.perl.com/pub/2002/03/12/axkit",
      "categories" : "data",
      "description" : " Series Introduction This article is the first in a series of articles introducing the AxKit web application platform. Starting from the basics, this series explains how to install a basic AxKit server and then explores AxKit's more powerful capabilities....",
      "tags" : [],
      "title" : "Introducing AxKit"
   },
   {
      "url" : "https://www.perl.com/pub/2002/03/p6pdigest/20020309",
      "url_path" : "/pub/2002/03/p6pdigest/20020309",
      "authors" : [
         "bryan-warnock"
      ],
      "epoch" : 1015920000,
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This Week on Perl 6 (3 -9 Mar 2002)",
      "description" : " Notes Both the email subscription and the web archive are temporarily offline. This should be remedied shortly. In the meantime, please send additions, submissions, corrections, kudos, and complaints to bwarnock@capita.com. Perl 6 is the major redesign and rewrite of...",
      "categories" : "perl-6"
   },
   {
      "url" : "https://www.perl.com/pub/2002/03/p6pdigest/20020302",
      "authors" : [
         "bryan-warnock"
      ],
      "url_path" : "/pub/2002/03/p6pdigest/20020302",
      "epoch" : 1015401600,
      "title" : "These Weeks on Perl 6 (10 Feb - 2 Mar 2002)",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "categories" : "perl-6",
      "description" : "Notes Both the email subscription and the web archive are temporarily offline. This should be remedied shortly. In the meantime, please send additions, submissions, corrections, kudos, and complaints to bwarnock@capita.com. Perl 6 is the major redesign and rewrite of the..."
   },
   {
      "title" : "Stopping Spam with SpamAssassin",
      "tags" : [
         "spam-vipul-s-spamassassin"
      ],
      "description" : " I receive a lot of spam; an absolute massive bucket load of spam. I received more than 100 pieces of spam in the first three days of this month. I receive so much spam that Hormel Foods sends trucks...",
      "categories" : "email",
      "url" : "https://www.perl.com/pub/2002/03/06/spam",
      "epoch" : 1015401600,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2002/03/06/spam"
   },
   {
      "epoch" : 1014710400,
      "url_path" : "/pub/2002/02/26/whatismodperl",
      "authors" : [
         "stas-bekman"
      ],
      "url" : "https://www.perl.com/pub/2002/02/26/whatismodperl",
      "description" : " In this article, I'll give an initial introduction to mod_perl, make you want to give it a try and present a few examples of the well-known sites that are powered by mod_perl enabled Apache. What Is mod_perl? mod_perl is...",
      "categories" : "web",
      "title" : "Why mod_perl?",
      "tags" : [
         "mod-perl"
      ]
   },
   {
      "description" : " Introduction The cross-site scripting attack is one of the most common, yet overlooked, security problems facing web developers today. A web site is vulnerable if it displays user-submitted content without checking for malicious script tags. Luckily, Perl and mod_perl...",
      "categories" : "security",
      "tags" : [
         "mod-perl-security-cross-site-scripting"
      ],
      "title" : "Preventing Cross-site Scripting Attacks",
      "url_path" : "/pub/2002/02/20/css",
      "authors" : [
         "paul-lindner"
      ],
      "epoch" : 1014192000,
      "url" : "https://www.perl.com/pub/2002/02/20/css"
   },
   {
      "epoch" : 1013500800,
      "authors" : [
         "bryan-warnock"
      ],
      "url_path" : "/pub/2002/02/p6pdigest/20020209",
      "url" : "https://www.perl.com/pub/2002/02/p6pdigest/20020209",
      "categories" : "perl-6",
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl6-digest-subscribe@netthink.co.uk. This summary, as with past summaries, can be found in here. (Note that this is an @Home address, and will change...",
      "title" : "This Fortnight on Perl 6 (27 Jan - 9 Feb 2002)",
      "tags" : [
         "perl-6-internals-parrot"
      ]
   },
   {
      "description" : " Is your Perl program taking too long to run? This might be because you've chosen a data structure or algorithm that takes a long time to run. By rethinking how you've implemented a function, you might be able to...",
      "categories" : "development",
      "tags" : [
         "big-o-data-structure-algorithm-efficiency"
      ],
      "title" : "Optimizing Your Perl",
      "authors" : [
         "robert-spier"
      ],
      "url_path" : "/pub/2002/02/12/bigo",
      "epoch" : 1013500800,
      "url" : "https://www.perl.com/pub/2002/02/12/bigo"
   },
   {
      "description" : " Jumbo shrimp, military intelligence - Visual Perl? ActiveState built its reputation by bringing Perl to the Windows platform, thereby extending the reach of Perl and the size and nature of the Perl community. However, regardless of the Windows port,...",
      "categories" : "development",
      "tags" : [
         "microsoft-visual-perl-studio"
      ],
      "title" : "Visual Perl",
      "url_path" : "/pub/2002/02/05/visperl",
      "authors" : [
         "eric-promislow"
      ],
      "epoch" : 1012982400,
      "url" : "https://www.perl.com/pub/2002/02/05/visperl"
   },
   {
      "categories" : "perl-6",
      "description" : " One of the best things about Parrot is that it's not just for Perl implementors. Parrot 0.0.3 came with support for extensible data types that can be used to implement the types used in your favorite language. The mechanism...",
      "tags" : [
         "parrot-pmcs-cookies"
      ],
      "title" : "Beginning PMCs",
      "epoch" : 1012377600,
      "authors" : [
         "jeffrey-goff"
      ],
      "url_path" : "/pub/2002/01/30/pmcs",
      "url" : "https://www.perl.com/pub/2002/01/30/pmcs"
   },
   {
      "categories" : "perl-6",
      "description" : " This summary, as with past summaries, can be found in here. (Note that this is an @Home address, and will change sometime in the next two months.) Please send additions, submissions, corrections, kudos, and complaints to bwarnock@capita.com. Perl 6...",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "title" : "This Week on Perl 6 (13 - 19 Jan 2002)",
      "epoch" : 1011772800,
      "url_path" : "/pub/2002/01/p6pdigest/20020119",
      "authors" : [
         "bryan-warnock"
      ],
      "url" : "https://www.perl.com/pub/2002/01/p6pdigest/20020119"
   },
   {
      "url" : "https://www.perl.com/pub/2002/01/23/cgi",
      "epoch" : 1011772800,
      "authors" : [
         "dave-cross"
      ],
      "url_path" : "/pub/2002/01/23/cgi",
      "title" : "Finding CGI Scripts",
      "tags" : [
         "cgi-not-matt-s-scripts"
      ],
      "categories" : "web",
      "description" : "Introduction No matter how much we try to convince people that Perl is a multi-purpose programming language, we'd be deluding ourselves if we didn't admit that the majority of programmers first come into contact with Perl through their experience with..."
   },
   {
      "epoch" : 1011254400,
      "authors" : [
         "bryan-warnock"
      ],
      "url_path" : "/pub/2002/01/p6pdigest/20020112",
      "url" : "https://www.perl.com/pub/2002/01/p6pdigest/20020112",
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl6-digest-subscribe@netthink.co.uk. This summary, as with past summaries, can be found in here. (Note that this is an @Home address, and will change...",
      "categories" : "perl-6",
      "title" : "This Week on Perl 6 (6 - 12 Jan 2002)",
      "tags" : [
         "perl-6-internals-parrot"
      ]
   },
   {
      "authors" : [
         "larry-wall"
      ],
      "url_path" : "/pub/2002/01/15/apo4",
      "epoch" : 1011081600,
      "url" : "https://www.perl.com/pub/2002/01/15/apo4",
      "description" : " Editor's Note: this Apocalypse is out of date and remains here for historic reasons. See Synopsis 04 for the latest information. Table of Contents Accepted RFCs RFC 022: Control flow: Builtin switch statement Table 1: Matching a switch value...",
      "categories" : "perl-6",
      "tags" : [
         "apocalypse"
      ],
      "title" : "Apocalypse 4"
   },
   {
      "description" : " In this Perl/Tk article, I'll discuss balloon help, photos and widget subclassing. Help balloons can be attached to widgets, menu items, and, as we'll see here, individual canvas items. Subclassing a Perl/Tk widget is also known as creating a...",
      "categories" : "development",
      "tags" : [
         "perl",
         "perl-tk",
         "widgets"
      ],
      "title" : "Creating Custom Widgets",
      "url_path" : "/pub/2002/01/09/perltk",
      "authors" : [
         "steve-lidie"
      ],
      "epoch" : 1010563200,
      "url" : "https://www.perl.com/pub/2002/01/09/perltk"
   },
   {
      "title" : "This Week on Perl 6 (30 December 2001 - 5 Jan 2002)",
      "tags" : [
         "perl-6-internals-parrot"
      ],
      "categories" : "perl-6",
      "description" : "Notes You can subscribe to an email version of this summary by sending an empty message to perl6-digest-subscribe@netthink.co.uk. This summary, as with past summaries, can be found in here. Please send additions, submissions, corrections, kudos, and complaints to bwarnock@capita.com. For...",
      "url" : "https://www.perl.com/pub/2002/01/p6pdigest/20020105",
      "authors" : [
         "bryan-warnock"
      ],
      "url_path" : "/pub/2002/01/p6pdigest/20020105",
      "epoch" : 1010217600
   },
   {
      "description" : " Bioinformatics, the use of computers in biology research, has been increasing in importance during the past decade as the Human Genome Project went from its beginning to the announcement last year of a \"draft\" of the complete sequence of...",
      "categories" : "science",
      "title" : "Beginning Bioinformatics",
      "tags" : [
         "bioinformatics",
         "biology"
      ],
      "url_path" : "/pub/2002/01/02/bioinf",
      "authors" : [
         "james-d-tisdall"
      ],
      "epoch" : 1009958400,
      "url" : "https://www.perl.com/pub/2002/01/02/bioinf"
   },
   {
      "categories" : "perl-6",
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl6-digest-subscribe@netthink.co.uk. This summary, as with past summaries, can be found in here. Please send additions, submissions, corrections, kudos, and complaints to bwarnock@capita.com....",
      "title" : "This Week on Perl 6 (23 - 29 December 2001)",
      "tags" : [
         "perl-6-internals-parrot-0-0-3"
      ],
      "epoch" : 1009612800,
      "url_path" : "/pub/2001/12/p6pdigest/20011229",
      "authors" : [
         "bryan-warnock"
      ],
      "url" : "https://www.perl.com/pub/2001/12/p6pdigest/20011229"
   },
   {
      "categories" : "perl-6",
      "description" : "Notes You can subscribe to an email version of this summary by sending an empty message to perl6-digest-subscribe@netthink.co.uk. This summary, as with past summaries, can be found in here. Please send additions, submissions, corrections, kudos, and complaints to bwarnock@capita.com. For...",
      "title" : "This Week on Perl 6 (16 - 22 December 2001)",
      "tags" : [
         "perl-6-internals-parrot-0-0-3"
      ],
      "epoch" : 1009612800,
      "url_path" : "/pub/2001/12/p6pdigest/20011222",
      "authors" : [
         "bryan-warnock"
      ],
      "url" : "https://www.perl.com/pub/2001/12/p6pdigest/20011222"
   },
   {
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl6-digest-subscribe@netthink.co.uk. This summary, as with past summaries, can be found in here. Please send additions, submissions, corrections, kudos, and complaints to bwarnock@capita.com....",
      "categories" : "perl-6",
      "tags" : [
         "perl-6-internals-parrot-0-0-3"
      ],
      "title" : "This Week on Perl 6 (9 - 15 December 2001)",
      "url_path" : "/pub/2001/12/p6pdigest/20011215",
      "authors" : [
         "bryan-warnock"
      ],
      "epoch" : 1008748800,
      "url" : "https://www.perl.com/pub/2001/12/p6pdigest/20011215"
   },
   {
      "url" : "https://www.perl.com/pub/2001/12/19/xmlrpc",
      "url_path" : "/pub/2001/12/19/xmlrpc",
      "authors" : [
         "kelvin-param"
      ],
      "epoch" : 1008748800,
      "tags" : [
         "active-directory-xml-rpc"
      ],
      "title" : "Building a Bridge to the Active Directory",
      "description" : " Introduction Active Directory of Windows 2000's directory service, allowing organizations to keep and share information about networked resources and users. One significant feature of the Active Directory is that it is LDAP-compliant. Unfortunately, it is still very difficult to...",
      "categories" : "data"
   },
   {
      "title" : "A Drag-and-Drop Primer for Perl/Tk",
      "tags" : [
         "drag-drop-tk",
         "perl",
         "perl-tk"
      ],
      "description" : " As it happens, no matter how much I write about Perl/Tk, there's always something left unsaid. A case in point is the topic of drag and drop, which didn't make it into our book, Mastering Perl/Tk. This article describes...",
      "categories" : "graphics",
      "url" : "https://www.perl.com/pub/2001/12/11/perltk",
      "epoch" : 1008057600,
      "url_path" : "/pub/2001/12/11/perltk",
      "authors" : [
         "steve-lidie"
      ]
   },
   {
      "authors" : [
         "bryan-warnock"
      ],
      "url_path" : "/pub/2001/12/p6pdigest/20011208",
      "epoch" : 1007971200,
      "url" : "https://www.perl.com/pub/2001/12/p6pdigest/20011208",
      "description" : "Notes You can subscribe to an email version of this summary by sending an empty message to perl6-digest-subscribe@netthink.co.uk. This summary, as with past summaries, can be found in here. Please send additions, submissions, corrections, kudos, and complaints to bwarnock@capita.com. There...",
      "categories" : "perl-6",
      "tags" : [
         "perl-6-internals-parrot-0-0-3"
      ],
      "title" : "This Week on Perl 6 (2 - 8 December 2001)"
   },
   {
      "epoch" : 1007452800,
      "authors" : [
         "chromatic"
      ],
      "url_path" : "/pub/2001/12/04/testing",
      "url" : "https://www.perl.com/pub/2001/12/04/testing",
      "description" : "Does your code work? How do you know that? Testing software with Perl is easier than you think, and it'll give you confidence that you've done the right thing.",
      "categories" : "testing",
      "title" : "An Introduction to Testing",
      "tags" : []
   },
   {
      "authors" : [
         "robert-spier"
      ],
      "url_path" : "/pub/2001/11/28/request",
      "epoch" : 1006934400,
      "url" : "https://www.perl.com/pub/2001/11/28/request",
      "categories" : "apps",
      "description" : " If you've ever had to do user support, then you'll be familiar with the following scenario: A question comes in from a user, and you write an e-mail reply. However, by the time you've hit \"send,\" another member of...",
      "tags" : [],
      "title" : "Request Tracker"
   },
   {
      "url" : "https://www.perl.com/pub/2001/11/21/lightweight",
      "epoch" : 1006329600,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2001/11/21/lightweight",
      "tags" : [
         "lightweight",
         "languages",
         "conference",
         "mit",
         "ai",
         "research",
         "academic",
         "language-development"
      ],
      "title" : "Lightweight Languages",
      "categories" : "community",
      "description" : " What happens if you get a bunch of academic computer scientists and implementors of languages such as Perl, Python, Smalltalk and Curl, and lock them into a room for a day? Bringing together the academic and commercial sides of..."
   },
   {
      "url" : "https://www.perl.com/pub/2001/11/16/perlbio2",
      "epoch" : 1005897600,
      "authors" : [
         "james-d-tisdall"
      ],
      "url_path" : "/pub/2001/11/16/perlbio2",
      "tags" : [
         "beginning-perl-for-bioinformatics",
         "bioinformatics",
         "biological-research",
         "biology-research-programming",
         "computational-biology",
         "genetics",
         "genomics",
         "learning-to-program",
         "oreilly",
         "perl-for-bioinformatics",
         "programming-for-biology-research",
         "sequencing",
         "web"
      ],
      "title" : "Parsing Protein Domains with Perl",
      "categories" : "science",
      "description" : " The Perl programming language is popular with biologists because of its practicality. In my book, Beginning Perl for Bioinformatics, I demonstrate how many of the things biologists want to write programs for are readily-even enjoyably-accomplished with Perl. My book..."
   },
   {
      "url" : "https://www.perl.com/pub/2001/11/15/creatingrss",
      "authors" : [
         "chris-ball"
      ],
      "url_path" : "/pub/2001/11/15/creatingrss",
      "epoch" : 1005811200,
      "title" : "Create RSS channels from HTML news sites",
      "tags" : [],
      "categories" : "web",
      "description" : " Even if you haven't heard of the RSS acronym before, you're likely to have used RSS in the past. Whether through the slashboxes at slashdot or our own news summary at use.perl.org, the premise remains the same - RSS,..."
   },
   {
      "title" : "Object-Oriented Perl",
      "tags" : [
         "object-oriented",
         "perl"
      ],
      "description" : " I've recently started learning to play the game of Go. Go and Perl have many things in common - the basic stuff of which they are made, the rules of the game, are relatively simple, and hide an amazing...",
      "categories" : "development",
      "url" : "https://www.perl.com/pub/2001/11/07/ooperl",
      "epoch" : 1005120000,
      "url_path" : "/pub/2001/11/07/ooperl",
      "authors" : [
         "simon-cozens"
      ]
   },
   {
      "tags" : [],
      "title" : "The Lighter Side of CPAN",
      "categories" : "cpan",
      "description" : " Programming can be a stressful game. We sit at our machines, day in, day out, endlessly staring at a monitor fathoming where that last devious bug has buried itself. It's not surprising then that sometimes it gets to be...",
      "url" : "https://www.perl.com/pub/2001/10/31/lighter",
      "authors" : [
         "alex-gough"
      ],
      "url_path" : "/pub/2001/10/31/lighter",
      "epoch" : 1004515200
   },
   {
      "categories" : "perl-6",
      "description" : " London.pm technical meetings are always inspiring events with top notch speakers. At our most recent gathering Richard Clamp and Mark Fowler gave us \"Wax::On, Wax::Off - how to become a Perl sensei\"; Paul Mison showed us how to make...",
      "tags" : [
         "damian-conway",
         "larry-wall",
         "perl-6"
      ],
      "title" : "Perl 6 : Not Just For Damians",
      "epoch" : 1003824000,
      "authors" : [
         "piers-cawley"
      ],
      "url_path" : "/pub/2001/10/23/damians",
      "url" : "https://www.perl.com/pub/2001/10/23/damians"
   },
   {
      "url" : "https://www.perl.com/pub/2001/10/p5pdigest/20011021",
      "authors" : [
         "abhijit-menon-sen"
      ],
      "url_path" : "/pub/2001/10/p5pdigest/20011021",
      "epoch" : 1003651200,
      "tags" : [
         "p5p-threads-unicode-pod"
      ],
      "title" : "This Week on p5p 2001/10/21",
      "categories" : "community",
      "description" : " This fortnight on perl5-porters (08-21 October 2001) Notes This Week on P5P Â 5.8.0 TODO Â POD Â Testing Â ${^TAINT} Â AUTOLOAD and packages Â B::Parrot Â Miscellaneous Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is..."
   },
   {
      "authors" : [
         "perrin-harkins"
      ],
      "url_path" : "/pub/2001/10/17/etoys",
      "epoch" : 1003305600,
      "url" : "https://www.perl.com/pub/2001/10/17/etoys",
      "categories" : "web",
      "description" : " Common Myths Table of Contents Â Roll Your Own Application Server Â Case Study: eToys.com Â Apache::PerlRun to the Rescue Â Planning the New Architecture Â Surviving Christmas 2000 Â The Architecture Â Proxy Servers Â Application Servers Â...",
      "title" : "Building a Large-scale E-commerce Site with Apache and mod_perl",
      "tags" : []
   },
   {
      "description" : "Notes This Week on P5P Â chromatic Â Call for PerlIO bugs Â Attributes are broken Â Multiple FETCHes Â Code cleanups Â Various Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes...",
      "categories" : "community",
      "title" : "This Week on p5p 2001/10/07",
      "tags" : [
         "p5p-threads-unicode-pod"
      ],
      "url_path" : "/pub/2001/10/p5pdigest/20011010",
      "authors" : [
         "abhijit-menon-sen"
      ],
      "epoch" : 1002700800,
      "url" : "https://www.perl.com/pub/2001/10/p5pdigest/20011010"
   },
   {
      "url" : "https://www.perl.com/pub/2001/10/10/perlmx",
      "epoch" : 1002700800,
      "authors" : [
         "mike-degraw-bertsch"
      ],
      "url_path" : "/pub/2001/10/10/perlmx",
      "tags" : [
         "perlmx-activestate-sendmail"
      ],
      "title" : "Filtering Mail with PerlMx",
      "categories" : "web",
      "description" : " Introduction PerlMx is a utility by ActiveState that allows Perl programs to interface with Sendmail connections. It's quite a powerful tool, and once installed, it's very easy to use. This article will detail how to install and setup PerlMx,..."
   },
   {
      "url_path" : "/pub/2001/10/03/exegesis3",
      "authors" : [
         "damian-conway"
      ],
      "epoch" : 1002096000,
      "url" : "https://www.perl.com/pub/2001/10/03/exegesis3",
      "categories" : "perl-6",
      "description" : " Editor's note: this document is out of date and remains here for historic interest. See Synopsis 3 for the current design information. Diamond lives (context-aware); Underscore space means concatenate; fat comma means pair; A pre-star will flatten; colon-equals will...",
      "title" : "Exegesis 3",
      "tags" : []
   },
   {
      "epoch" : 1002009600,
      "authors" : [
         "larry-wall"
      ],
      "url_path" : "/pub/2001/10/02/apocalypse3",
      "url" : "https://www.perl.com/pub/2001/10/02/apocalypse3",
      "description" : " Editor's Note: this Apocalypse is out of date and remains here for historic reasons. See Synopsis 03 for the latest information. Table of Contents Â RFC 025: Operators: Multiway comparisons Â RFC 320: Allow grouping of -X file tests...",
      "categories" : "perl-6",
      "tags" : [],
      "title" : "Apocalypse 3"
   },
   {
      "categories" : "security",
      "description" : " Introduction Symmetric cryptography allows Alice to exchange secret messages with Bob over the network, but only after they have shared a secret key. If Alice and Bob don't live within commutable distance, or are unable to meet in person...",
      "tags" : [
         "asymmetric-cryptography"
      ],
      "title" : "Asymmetric Cryptography in Perl",
      "url_path" : "/pub/2001/09/26/crypto1",
      "authors" : [
         "benjamin-trott",
         "vipul-ved-prakash"
      ],
      "epoch" : 1001491200,
      "url" : "https://www.perl.com/pub/2001/09/26/crypto1"
   },
   {
      "url" : "https://www.perl.com/pub/2001/09/18/parrot",
      "epoch" : 1000800000,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2001/09/18/parrot",
      "tags" : [
         "parrot-perl-6-assembler-virtual-machine"
      ],
      "title" : "Parrot : Some Assembly Required",
      "categories" : "perl-6",
      "description" : " Last week, the first public version of Parrot was released. This week, we're going to take a close look at what Parrot is, how you can get hold of it and play with it, and what we intend for..."
   },
   {
      "url" : "https://www.perl.com/pub/2001/09/12/wxtutorial1",
      "authors" : [
         "jouke-visser"
      ],
      "url_path" : "/pub/2001/09/12/wxtutorial1",
      "epoch" : 1000281600,
      "title" : "wxPerl: Another GUI for Perl",
      "tags" : [
         "wxperl-guis-perl"
      ],
      "description" : "wxPerl? If you don't just use Perl for creating CGI scripts, you'll probably have to create some kind of front-end for your applications sooner or later. You might use the Curses library, but if you want a nice GUI, you...",
      "categories" : "development"
   },
   {
      "url" : "https://www.perl.com/pub/2001/09/p6pdigest/20010908",
      "epoch" : 999936000,
      "url_path" : "/pub/2001/09/p6pdigest/20010908",
      "authors" : [
         "bryan-warnock"
      ],
      "tags" : [
         "perl-6-internals-lexical-documentation"
      ],
      "title" : "This Week on Perl 6 (2 - 8 September 2001)",
      "categories" : "perl-6",
      "description" : "Notes This Week in Perl 6 News Â %MY:: Goodness Â Prototypes Â Documents Released Â Math Functions To Add Â Parroty Bits You can subscribe to an email version of this summary by sending an empty message to perl6-digest-subscribe@netthink.co.uk...."
   },
   {
      "url" : "https://www.perl.com/pub/2001/09/04/tiedhash",
      "authors" : [
         "dave-cross"
      ],
      "url_path" : "/pub/2001/09/04/tiedhash",
      "epoch" : 999590400,
      "tags" : [
         "tied-hash-behaviour"
      ],
      "title" : "Changing Hash Behaviour with tie",
      "categories" : "data",
      "description" : " Introduction In my experience, hashes are just about the most useful built-in datatype that Perl has. They are useful for so many things - from simple lookup tables to complex data structures. And, of course, most Perl Objects have..."
   },
   {
      "url" : "https://www.perl.com/pub/2001/08/p5pdigest/20010903",
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2001/08/p5pdigest/20010903",
      "epoch" : 999504000,
      "tags" : [
         "p5p-coderefs-schwern-testing"
      ],
      "title" : "This Week on p5p 2001/09/03",
      "description" : "Notes This Week on P5P Â Testing, testing Â Coderef-in-@INC Â Default random seed Â local chdir() Â File::Spec Â Smoking! Â Various Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes and...",
      "categories" : "community"
   },
   {
      "description" : " Notes This Week in Perl 6 News Â Notes Â Expunge Implicit @_ Passing Â Finalization and Deterministic Destruction Â Multiple Dispatch on Objects Â Program Metadata Â ! versus >= Â Parroty Bits Â Last Words You can...",
      "categories" : "perl-6",
      "tags" : [
         "perl-6-internals-closures"
      ],
      "title" : "This Week on Perl 6 (26 August - 1 September 2001)",
      "url_path" : "/pub/2001/09/p6pdigest/20010901",
      "authors" : [
         "bryan-warnock"
      ],
      "epoch" : 999331200,
      "url" : "https://www.perl.com/pub/2001/09/p6pdigest/20010901"
   },
   {
      "url" : "https://www.perl.com/pub/2001/08/p5pdigest/20010827",
      "url_path" : "/pub/2001/08/p5pdigest/20010827",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 998899200,
      "title" : "This Week on p5p 2001/08/27",
      "tags" : [
         "p5p-callbacks-coderefs-vstrings"
      ],
      "description" : " Notes This Week on P5P Â $] and v-strings Â Callbacks in the core Â CvMETHOD and ->can() Â Coderefs in @INC (again) Â Malloc Madness Â Various Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the...",
      "categories" : "community"
   },
   {
      "epoch" : 998899200,
      "url_path" : "/pub/2001/08/27/bjornstad",
      "authors" : [
         "dan-brian"
      ],
      "url" : "https://www.perl.com/pub/2001/08/27/bjornstad",
      "description" : "As part of Mark-Jason Dominus's Lightning Talks at the 2001 O'Reilly Open Source Convention, Jon Bjornstad gave a talk about a Perl/Tk program he wrote to help a mute quadriplegic friend, Sue Simpson, speak and better use her computer. Jon's...",
      "categories" : "community",
      "title" : "Perl Helps The Disabled",
      "tags" : [
         "disabled-accessibility-tk-bjornstad"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2001/08/p6pdigest/20010825",
      "authors" : [
         "bryan-warnock"
      ],
      "url_path" : "/pub/2001/08/p6pdigest/20010825",
      "epoch" : 998899200,
      "tags" : [
         "perl-6-internals-closures"
      ],
      "title" : "This Week on Perl 6 (19 - 25 August 2001)",
      "description" : "Notes This Week in Perl 6 News Â Closures Â Method Signatures Â Foo::$bar Â Perl 6 Internals (Yes, There Are Some...) Â More Modules Â Last Words You can subscribe to an email version of this summary by sending...",
      "categories" : "perl-6"
   },
   {
      "title" : "Choosing a Templating System",
      "tags" : [
         "templating-text-html"
      ],
      "categories" : "development",
      "description" : " Introduction Go on, admit it: You've written a templating system. It's OK, nearly everyone has at some point. You start with something beautifully simple like $HTML =~ s/\\$(\\w+)/${$1}/g and end up adding conditionals, loops and includes until you've created...",
      "url" : "https://www.perl.com/pub/2001/08/21/templating",
      "url_path" : "/pub/2001/08/21/templating",
      "authors" : [
         "perrin-harkins"
      ],
      "epoch" : 998380800
   },
   {
      "epoch" : 998380800,
      "authors" : [
         "gisle-aas",
         "bryan-warnock"
      ],
      "url_path" : "/pub/2001/08/p6pdigest/20010818",
      "url" : "https://www.perl.com/pub/2001/08/p6pdigest/20010818",
      "categories" : "perl-6",
      "description" : "Notes You can subscribe to an email version of this summary by sending an empty message to perl6-digest-subscribe@netthink.co.uk. Please send corrections and additions to bwarnock@capita.com. There were 44 messages across 10 threads, with 26 authors contributing. The Modules Plan (21...",
      "title" : "This Week on Perl 6 (12 - 18 August 2001)",
      "tags" : [
         "perl-6-internals-modules"
      ]
   },
   {
      "categories" : "community",
      "description" : " Notes This Week on P5P Â POD Specification Â Unicode Normalisation Â Threading Semantics Â perlmodstyle Â Shrinking down the Perl install Â Various Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month....",
      "tags" : [
         "p5p-threads-unicode-pod"
      ],
      "title" : "This Week on p5p 2001/08/15",
      "url_path" : "/pub/2001/08/p5pdigest/20010815",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 997862400,
      "url" : "https://www.perl.com/pub/2001/08/p5pdigest/20010815"
   },
   {
      "description" : " Last year Europe had its first Yet Another Perl Conference. Leon Brocard, Jon Peterson and Greg McCarroll did a marvellous job organizing this grassroots conference - themed \"The Art of Perl\" - from scratch within two months. For the...",
      "categories" : "community",
      "tags" : [],
      "title" : "Yet Another Perl Conference Europe 2001",
      "epoch" : 997689600,
      "authors" : [
         "jouke-visser"
      ],
      "url_path" : "/pub/2001/08/13/yapc-europe",
      "url" : "https://www.perl.com/pub/2001/08/13/yapc-europe"
   },
   {
      "categories" : "community",
      "description" : "Notes This Week in Perl 6 ÂNotes ÂDamian's Perl 6 Talk, Take Two ÂOpcode Dispatching ÂModules Âgiven (Properties) { when: Proper } ÂEval/o's Vs. Evil Woes PDDs Released You can subscribe to an email version of this summary by sending...",
      "title" : "This Week in Perl 6 (5 - 11 August 2001)",
      "tags" : [],
      "epoch" : 997516800,
      "url_path" : "/pub/2001/08/p6pdigest/20010811",
      "authors" : [
         "bryan-warnock"
      ],
      "url" : "https://www.perl.com/pub/2001/08/p6pdigest/20010811"
   },
   {
      "categories" : "community",
      "description" : "Notes Table of Contents &#149;The Perl Conference 5.0 &#149;The Perl 5 Porters Meeting &#149;The State Of The Onion &#149;The P 6 Q &amp; A &#149;Sarathy Speaks &#149;The Opcode BOF &#149;The Mailing Lists You can subscribe to an email version of...",
      "title" : "This Fortnight In Perl 6 (July 22 - Aug. 4, 2001)",
      "tags" : [],
      "epoch" : 997344000,
      "authors" : [
         "bryan-warnock"
      ],
      "url_path" : "/pub/2001/08/p6pdigest/20010809",
      "url" : "https://www.perl.com/pub/2001/08/p6pdigest/20010809"
   },
   {
      "url" : "https://www.perl.com/pub/2001/08/p5pdigest/20010808",
      "url_path" : "/pub/2001/08/p5pdigest/20010808",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 997257600,
      "title" : "This Week on p5p 2001/08/07",
      "tags" : [],
      "categories" : "community",
      "description" : " Notes This Week on P5P Â Subroutine Prototypes Â -Wall fixes Â The Great SDK Debate Â New Stuff! Â Various Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes and additions..."
   },
   {
      "title" : "Quantum::Entanglement",
      "tags" : [
         "quantum-physics-superpositions-entanglement"
      ],
      "description" : " There Is More Than One World (In Which) To Do It With the possible exception of many physicists, quantum mechanics is one of the stranger things to have emerged from science over the last hundred years. It has led...",
      "categories" : "science",
      "url" : "https://www.perl.com/pub/2001/08/08/quantum",
      "epoch" : 997257600,
      "url_path" : "/pub/2001/08/08/quantum",
      "authors" : [
         "alex-gough"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2001/08/01/artur",
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2001/08/01/artur",
      "epoch" : 996652800,
      "tags" : [
         "people-behind-perl-artur-bergman-arthur"
      ],
      "title" : "People Behind Perl : Artur Bergman",
      "categories" : "community",
      "description" : " We continue our series on the People Behind Perl by interviewing Artur Bergman. Artur is a recent addition to the legion of Perl developers, but he's already making extremely big waves. Artur picked up the gauntlet of the new..."
   },
   {
      "url" : "https://www.perl.com/pub/2001/08/p5pdigest/20010730",
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2001/08/p5pdigest/20010730",
      "epoch" : 996652800,
      "title" : "This Week on p5p 2001/07/30",
      "tags" : [],
      "categories" : "community",
      "description" : "Notes This Week on P5P Â Hash \"clamping\" Â P5P Meeting Â Asynchronous Callbacks Â h2ph Â iThreads Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes and additions to the perl5-porters biographies..."
   },
   {
      "url" : "https://www.perl.com/pub/2001/07/25/onion",
      "epoch" : 996048000,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2001/07/25/onion",
      "tags" : [
         "perl-6-state-onion-larry-wall"
      ],
      "title" : "The State of the Onion 5",
      "description" : " Larry's State of the Onion presentation this year was, as every year, completely different from previous years. As he noted, previous talks have been about chemistry, theology, biology, and music; this year, for once, Larry actually talked about Perl....",
      "categories" : "community"
   },
   {
      "url" : "https://www.perl.com/pub/2001/07/17/mailfiltering",
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2001/07/17/mailfiltering",
      "epoch" : 995356800,
      "tags" : [
         "e-mail",
         "filter",
         "procmail",
         "rule",
         "spam"
      ],
      "title" : "Mail Filtering with Mail::Audit",
      "description" : " Let's face it. procmail is horrid. But for most of us, it's the only sensible way to handle mail filtering. I used to tolerate procmail, with its grotesque syntax and its less-than-helpful error messages, because it was the only...",
      "categories" : "security"
   },
   {
      "categories" : "community",
      "description" : "Notes This Week on P5P Â 5.7.2 is out! Â Many threading fixes Â package; Â SUPER:: debate rages on Â Various Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes and additions...",
      "title" : "This Week on p5p 2001/07/16",
      "tags" : [],
      "url_path" : "/pub/2001/07/p5pdigest/20010716",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 995270400,
      "url" : "https://www.perl.com/pub/2001/07/p5pdigest/20010716"
   },
   {
      "authors" : [
         "abhijit-menon-sen"
      ],
      "url_path" : "/pub/2001/07/10/crypto",
      "epoch" : 994752000,
      "url" : "https://www.perl.com/pub/2001/07/10/crypto",
      "categories" : "security",
      "description" : " Having purchased the $250 cookie recipe from Neiman-Marcus, Alice wants to send it to Bob, but keep it away from Eve, who snoops on everyone's network traffic from the cubicle down the hall. How can Perl help her? Ciphers...",
      "tags" : [
         "crypto-cryptography-crypt-idea-blowfish-symmetric"
      ],
      "title" : "Symmetric Cryptography in Perl"
   },
   {
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2001/07/p5pdigest/20010709",
      "epoch" : 994665600,
      "url" : "https://www.perl.com/pub/2001/07/p5pdigest/20010709",
      "description" : "Notes This Week on P5P Â No 5.8.0 Yet Â New Modules Â Numbers, numbers, numbers Â PerlIO considered evil Â Asynchronous Callbacks Â Various Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month....",
      "categories" : "community",
      "title" : "This Week on p5p 2001/07/09",
      "tags" : []
   },
   {
      "categories" : "community",
      "description" : " This Week Perl Doesn't Suck Multiple Classifications Once Inherited, Twice Shy Class::Object The Internal String API Miscellany Last Words You can subscribe to an email version of this summary by sending an empty message to perl6-digest-subscribe@netthink.co.uk. Please send corrections...",
      "tags" : [
         "api",
         "internal-api",
         "java",
         "perl-6"
      ],
      "title" : "This Fortnight in Perl 6 (17 - 30 June 2001)",
      "authors" : [
         "bryan-warnock"
      ],
      "url_path" : "/pub/2001/07/p6pdigest/20010703",
      "epoch" : 994147200,
      "url" : "https://www.perl.com/pub/2001/07/p6pdigest/20010703"
   },
   {
      "tags" : [],
      "title" : "People Behind Perl: Nathan Torkington",
      "categories" : "community",
      "description" : " So you use Perl, and you probably know that it was brought to you by \"Larry Wall and a cast of thousands\". But do you know these people that make up the Perl development team? Every month, we're going...",
      "url" : "https://www.perl.com/pub/2001/07/03/nat",
      "url_path" : "/pub/2001/07/03/nat",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 994147200
   },
   {
      "categories" : "community",
      "description" : "Notes This week on P5P Â Notes Â Module Versioning and Testing Â Carpentry Â Regex Capture-to-variable Â Perl on S390 Â UTS Amdahl Â Various Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and...",
      "tags" : [],
      "title" : "This Week on p5p 2001/07/02",
      "url_path" : "/pub/2001/07/p5pdigest/20010702",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 994060800,
      "url" : "https://www.perl.com/pub/2001/07/p5pdigest/20010702"
   },
   {
      "description" : "Why translating Perl to C often doesn't create faster programs",
      "categories" : "perl-internals",
      "title" : "Why Not Translate Perl to C?",
      "tags" : [
         "c",
         "compile",
         "c-and-perl"
      ],
      "epoch" : 993628800,
      "url_path" : "/pub/2001/06/27/ctoperl",
      "authors" : [
         "mark-jason-dominus"
      ],
      "url" : "https://www.perl.com/pub/2001/06/27/ctoperl"
   },
   {
      "description" : "This week on perl5-porters (18 June-25 June 2001) Notes You can subscribe to an email version of this summary by sending an empty message to perl5-porters-digest-subscribe@netthink.co.uk. Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and...",
      "categories" : "community",
      "tags" : [],
      "title" : "This Week on p5p 2001/06/25",
      "url_path" : "/pub/2001/06/p5pdigest/20010625",
      "authors" : [
         "leon-brocard"
      ],
      "epoch" : 993456000,
      "url" : "https://www.perl.com/pub/2001/06/p5pdigest/20010625"
   },
   {
      "url" : "https://www.perl.com/pub/2001/06/21/yapcreport",
      "authors" : [
         "schuyler-erle"
      ],
      "url_path" : "/pub/2001/06/21/yapcreport",
      "epoch" : 993110400,
      "tags" : [],
      "title" : "Yet Another YAPC Report: Montreal",
      "description" : "A year ago, at Yet Another Perl Conference North America 19100, both Perl-the-language and Perl-the-community seemed to be headed for trouble. Longtime Perl hackers spoke openly with concern at the apparent stagnation of Perl 5 development, and how the community...",
      "categories" : "community"
   },
   {
      "title" : "This Week on p5p 2001/06/17",
      "tags" : [],
      "categories" : "community",
      "description" : " Notes Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes and additions to the perl5-porters biographies are particularly welcome. This was a reasonably busy week, seeing just over 400 messages. Many thanks...",
      "url" : "https://www.perl.com/pub/2001/06/p5pdigest/20010617",
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/2001/06/p5pdigest/20010617",
      "epoch" : 992937600
   },
   {
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl6-digest-subscribe@netthink.co.uk. Please send corrections and additions to bwarnock@capita.com. The Perl 6 mailing lists saw 165 messages across 20 threads, with 31 authors...",
      "categories" : "community",
      "tags" : [],
      "title" : "This Week in Perl 6 (10 - 16 June 2001)",
      "epoch" : 992937600,
      "url_path" : "/pub/2001/06/p6pdigest/20010616",
      "authors" : [
         "bryan-warnock"
      ],
      "url" : "https://www.perl.com/pub/2001/06/p6pdigest/20010616"
   },
   {
      "url" : "https://www.perl.com/pub/2001/06/13/recdecent",
      "url_path" : "/pub/2001/06/13/recdecent",
      "authors" : [
         "jeffrey-goff"
      ],
      "epoch" : 992419200,
      "title" : "Parse::RecDescent Tutorial",
      "tags" : [],
      "categories" : "programming-languages",
      "description" : " The Basics Parse::RecDescent is a combination compiler and interpreter. The language it uses can be thought of roughly as a macro language like CPP's, but the macros take no parameters. This may seem limiting, but the technique is very..."
   },
   {
      "url" : "https://www.perl.com/pub/2001/06/12/anti/begin",
      "authors" : [
         "robert-kiesling"
      ],
      "url_path" : "/pub/2001/06/12/anti/begin",
      "epoch" : 992332800,
      "title" : "The Beginner's Attitude of Perl: What Attitude?",
      "tags" : [],
      "description" : "A recent article here, Turning the Tides of Perl's Attitude Toward Beginners,\" described places on the Internet where beginners could get help without fear of being flamed mercilessly by insensitive, elitist Perl experts. Experienced programmers, in short, must be more...",
      "categories" : "community"
   },
   {
      "url_path" : "/pub/2001/06/p5pdigest/THISWEEK-20010612",
      "authors" : [
         "leon-brocard"
      ],
      "epoch" : 992332800,
      "url" : "https://www.perl.com/pub/2001/06/p5pdigest/THISWEEK-20010612",
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl5-porters-digest-subscribe@netthink.co.uk. Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes and additions to the perl5-porters...",
      "categories" : "community",
      "tags" : [],
      "title" : "This Week on p5p 2001/06/09"
   },
   {
      "title" : "This Week in Perl 6 (3 - 9 June 2001)",
      "tags" : [],
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl6-digest-subscribe@netthink.co.uk. Please send corrections and additions to bwarnock@capita.com. The Perl 6 mailing lists saw 226 messages across 19 threads, with 40 authors...",
      "categories" : "community",
      "url" : "https://www.perl.com/pub/2001/06/p6pdigest/THISWEEK-20010612",
      "epoch" : 992332800,
      "authors" : [
         "bryan-warnock"
      ],
      "url_path" : "/pub/2001/06/p6pdigest/THISWEEK-20010612"
   },
   {
      "url" : "https://www.perl.com/pub/2001/06/05/cgi",
      "url_path" : "/pub/2001/06/05/cgi",
      "authors" : [
         "jesse-erlbaum"
      ],
      "epoch" : 991728000,
      "title" : "Using CGI::Application",
      "tags" : [],
      "categories" : "web",
      "description" : "Using CGI::Application -> Why CGI::Application? Table of Contents &#149;Why CGI::Application? &#149;Understanding CGI::Application &#149;Putting It All Together &#149;Conclusions & Advanced Concepts: Where to Go From Here &#149;Resources The Common Gateway Interface (CGI) may be viewed by some as \"less than glamorous\",..."
   },
   {
      "title" : "This Week on p5p 2001/06/03",
      "tags" : [],
      "categories" : "community",
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl5-porters-digest-subscribe@netthink.co.uk. Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes and additions to the perl5-porters...",
      "url" : "https://www.perl.com/pub/2001/06/p5pdigest/THISWEEK-20010604",
      "authors" : [
         "leon-brocard"
      ],
      "url_path" : "/pub/2001/06/p5pdigest/THISWEEK-20010604",
      "epoch" : 991641600
   },
   {
      "description" : " 3 June 2001 Notes You can subscribe to an email version of this summary by sending an empty message to perl6-digest-subscribe@netthink.co.uk. Please send corrections and additions to perl6-thisweek-YYYYMM@simon-cozens.org, where YYYYMM is the current year and month. It was a...",
      "categories" : "perl-6",
      "tags" : [],
      "title" : "This Week in Perl 6 (27 May - 2 June 2001)",
      "url_path" : "/pub/2001/06/p6pdigest/THISWEEK-20010601",
      "authors" : [
         "bryan-warnock"
      ],
      "epoch" : 991641600,
      "url" : "https://www.perl.com/pub/2001/06/p6pdigest/THISWEEK-20010601"
   },
   {
      "url" : "https://www.perl.com/pub/2001/05/29/tides",
      "epoch" : 991036800,
      "url_path" : "/pub/2001/05/29/tides",
      "authors" : [
         "casey-west"
      ],
      "tags" : [
         "beginner",
         "elitism",
         "learn",
         "newbie",
         "perl"
      ],
      "title" : "Turning the Tides on Perl's Attitude Toward Beginners",
      "categories" : "community",
      "description" : "Turning the Tide on Perl's Attitude Toward Beginners -> The Perl community has held tight to a \"zero tolerance\" policy for beginners. The transition to a more accepting, responsible community has begun. The past is behind us and the future..."
   },
   {
      "categories" : "community",
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl5-porters-digest-subscribe@netthink.co.uk. Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes and additions to the perl5-porters...",
      "title" : "This Week on p5p 2001/05/27",
      "tags" : [],
      "epoch" : 990950400,
      "url_path" : "/pub/2001/05/p5pdigest/THISWEEK-20010527",
      "authors" : [
         "leon-brocard"
      ],
      "url" : "https://www.perl.com/pub/2001/05/p5pdigest/THISWEEK-20010527"
   },
   {
      "epoch" : 990518400,
      "url_path" : "/pub/2001/05/22/trafficlights",
      "authors" : [
         "michael-schwern"
      ],
      "url" : "https://www.perl.com/pub/2001/05/22/trafficlights",
      "description" : " Michael Schwern will be speaking at the O'Reilly Open Source Convention in San Diego, CA, July 23-27, 2001. Excuse me, I'm going to ramble a bit about traffic lights as they relate to language design to see whether something...",
      "categories" : "community",
      "tags" : [
         "design",
         "development",
         "lights",
         "perl-6",
         "traffic"
      ],
      "title" : "Taking Lessons From Traffic Lights"
   },
   {
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl6-digest-subscribe@netthink.co.uk. Please send corrections and additions to perl6-thisweek-YYYYMM@simon-cozens.org, where YYYYMM is the current year and month. It's been two months since we've...",
      "categories" : "community",
      "title" : "This Month on Perl6 (1 May - 20 May 2001)",
      "tags" : [],
      "epoch" : 990432000,
      "url_path" : "/pub/2001/05/p6pdigest/THISWEEK-20010501",
      "authors" : [
         "bryan-warnock"
      ],
      "url" : "https://www.perl.com/pub/2001/05/p6pdigest/THISWEEK-20010501"
   },
   {
      "url_path" : "/pub/2001/05/08/exegesis2",
      "authors" : [
         "damian-conway"
      ],
      "epoch" : 989913600,
      "url" : "https://www.perl.com/pub/2001/05/08/exegesis2",
      "categories" : "perl-6",
      "description" : "Exegesis 2 -> Editor's note: this document is out of date and remains here for historic interest. See Synopsis 2 for the current design information. exegesis: n. an interpretation and explanation of a text, esp. Holy Writ This is the...",
      "title" : "Exegesis 2",
      "tags" : [
         "perl-6"
      ]
   },
   {
      "tags" : [],
      "title" : "This Week on p5p 2001/05/13",
      "categories" : "community",
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl5-porters-digest-subscribe@netthink.co.uk. Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes and additions to the perl5-porters...",
      "url" : "https://www.perl.com/pub/2001/05/p5pdigest/THISWEEK-20010513",
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2001/05/p5pdigest/THISWEEK-20010513",
      "epoch" : 989740800
   },
   {
      "url" : "https://www.perl.com/pub/2001/05/p5pdigest/THISWEEK-20010520",
      "url_path" : "/pub/2001/05/p5pdigest/THISWEEK-20010520",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 989136000,
      "tags" : [],
      "title" : "This Week on p5p 2001/05/20",
      "categories" : "community",
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl5-porters-digest-subscribe@netthink.co.uk. Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes and additions to the perl5-porters..."
   },
   {
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl5-porters-digest-subscribe@netthink.co.uk. Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes and additions to the perl5-porters...",
      "categories" : "community",
      "tags" : [],
      "title" : "This Week on p5p 2001/05/06",
      "epoch" : 989136000,
      "url_path" : "/pub/2001/05/p5pdigest/THISWEEK-20010506",
      "authors" : [
         "simon-cozens"
      ],
      "url" : "https://www.perl.com/pub/2001/05/p5pdigest/THISWEEK-20010506"
   },
   {
      "title" : "Larry Wall: Apocalypse Two",
      "tags" : [],
      "categories" : "perl-6",
      "description" : " Apocalypse 2 -> Editor's Note: this Apocalypse is out of date and remains here for histor ic reasons. See Syn opsis 02 for the latest information. Perl 6 Apocalypse The rest of the \"Apocalypse\" series is available on Larry...",
      "url" : "https://www.perl.com/pub/2001/05/03/wall",
      "url_path" : "/pub/2001/05/03/wall",
      "authors" : [
         "larry-wall"
      ],
      "epoch" : 988876800
   },
   {
      "url" : "https://www.perl.com/pub/2001/05/01/expressions",
      "url_path" : "/pub/2001/05/01/expressions",
      "authors" : [
         "pete-sergeant"
      ],
      "epoch" : 988704000,
      "title" : "Reversing Regular Expressions",
      "tags" : [],
      "description" : " Regular Expressions are arguably one of Perl's most useful and powerful tools. The ability to match complex strings is one of the things that makes Perl the effective \"Practical Extraction and Reporting Language\" that it is. The regular expression...",
      "categories" : "development"
   },
   {
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl5-porters-digest-subscribe@netthink.co.uk. Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes and additions to the perl5-porters...",
      "categories" : "community",
      "title" : "This Week on p5p 2001/04/29",
      "tags" : [],
      "epoch" : 988531200,
      "url_path" : "/pub/2001/05/p5pdigest/THISWEEK-20010429",
      "authors" : [
         "simon-cozens"
      ],
      "url" : "https://www.perl.com/pub/2001/05/p5pdigest/THISWEEK-20010429"
   },
   {
      "description" : " Table of Contents ÂQuick Start with SOAP Part I ÂMore Complex Server (daemon, mod_perl and mod_soap) ÂAccess to Remote Services ÂAccess With Service Description (WSDL) ÂSecurity (SSL, basic/digest authentication, cookie-based authentication, ticket-based authentication, access control) ÂHandling LoLs (List of...",
      "categories" : "web",
      "tags" : [],
      "title" : "Quick Start Guide with SOAP Part Two",
      "authors" : [
         "paul-kulchenko"
      ],
      "url_path" : "/pub/2001/04/24/soap",
      "epoch" : 988012800,
      "url" : "https://www.perl.com/pub/2001/04/24/soap"
   },
   {
      "url" : "https://www.perl.com/pub/2001/04/p5pdigest/THISWEEK-20010422",
      "epoch" : 987926400,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2001/04/p5pdigest/THISWEEK-20010422",
      "title" : "This Week on p5p 2001/04/22",
      "tags" : [],
      "categories" : "community",
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl5-porters-digest-subscribe@netthink.co.uk. Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes and additions to the perl5-porters..."
   },
   {
      "categories" : "data",
      "description" : " My co-workers cringe when I tell them the truth. What XML parser are you using? MSXML? With Perl? You've gotta be crazy. Yes, it's true, but I couldn't help myself. After test driving MSXML in a Visual Basic application,...",
      "tags" : [
         "xml"
      ],
      "title" : "MSXML, It's Not Just for VB Programmers Anymore",
      "epoch" : 987494400,
      "authors" : [
         "shawn-ribordy"
      ],
      "url_path" : "/pub/2001/04/17/msxml",
      "url" : "https://www.perl.com/pub/2001/04/17/msxml"
   },
   {
      "url_path" : "/pub/2001/04/p5pdigest/THISWEEK-20010415",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 987321600,
      "url" : "https://www.perl.com/pub/2001/04/p5pdigest/THISWEEK-20010415",
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl5-porters-digest-subscribe@netthink.co.uk. Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes and additions to the perl5-porters...",
      "categories" : "community",
      "title" : "This Week on p5p 2001/04/15",
      "tags" : []
   },
   {
      "epoch" : 986889600,
      "authors" : [
         "pete-sergeant"
      ],
      "url_path" : "/pub/2001/04/10/engine",
      "url" : "https://www.perl.com/pub/2001/04/10/engine",
      "categories" : "data",
      "description" : " A couple of months ago, I was approached by a company that I had done some work for previously, and was asked to build them a search engine to index about 200MB of HTML. However, some fairly strict rules...",
      "title" : "Designing a Search Engine",
      "tags" : [
         "array",
         "perl",
         "search"
      ]
   },
   {
      "epoch" : 986716800,
      "url_path" : "/pub/2001/04/p5pdigest/THISWEEK-20010408",
      "authors" : [
         "simon-cozens"
      ],
      "url" : "https://www.perl.com/pub/2001/04/p5pdigest/THISWEEK-20010408",
      "categories" : "community",
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl5-porters-digest-subscribe@netthink.co.uk. Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes and additions to the perl5-porters...",
      "title" : "This Week on p5p 2001/04/08",
      "tags" : []
   },
   {
      "tags" : [
         "perl-6"
      ],
      "title" : "Apocalypse 1: The Ugly, the Bad, and the Good",
      "categories" : "perl-6",
      "description" : " Editor's Note: this Apocalypse is out of date and remains here for historic reasons. See Synopsis 01 for the latest information. Table of Contents ÂRFC 141: This Is The Last Major Revision ÂRFC 28: Perl should stay Perl ÂRFC...",
      "url" : "https://www.perl.com/pub/2001/04/02/wall",
      "url_path" : "/pub/2001/04/02/wall",
      "authors" : [
         "larry-wall"
      ],
      "epoch" : 986198400
   },
   {
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl5-porters-digest-subscribe@netthink.co.uk. Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes and additions to the perl5-porters...",
      "categories" : "community",
      "title" : "This Week on p5p 2001/04/01",
      "tags" : [],
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2001/04/p5pdigest/THISWEEK-20010401",
      "epoch" : 986112000,
      "url" : "https://www.perl.com/pub/2001/04/p5pdigest/THISWEEK-20010401"
   },
   {
      "epoch" : 985680000,
      "authors" : [
         "joe-nasal"
      ],
      "url_path" : "/pub/2001/03/27/gnome",
      "url" : "https://www.perl.com/pub/2001/03/27/gnome",
      "description" : " Table of Contents ÂProgram overview ÂInitialization ÂThe callbacks ÂConclusion Gnome is the desktop environment of choice on my home Linux system because it is feature-packed and user friendly. Gnome is also flexible, and thanks to the Gtk-Perl module and...",
      "categories" : "apps",
      "title" : "A Simple Gnome Panel Applet",
      "tags" : []
   },
   {
      "url" : "https://www.perl.com/pub/2001/03/p5pdigest/THISWEEK-20010326",
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2001/03/p5pdigest/THISWEEK-20010326",
      "epoch" : 985593600,
      "title" : "This Week on p5p 2001/03/26",
      "tags" : [],
      "categories" : "community",
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl5-porters-digest-subscribe@netthink.co.uk. Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes and additions to the perl5-porters..."
   },
   {
      "title" : "This Month on Perl6 (25 Feb--20 Mar 2001)",
      "tags" : [],
      "description" : null,
      "categories" : "community",
      "url" : "https://www.perl.com/pub/2001/03/p6pdigest/THISMONTH-20010320.htm",
      "epoch" : 985161600,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2001/03/p6pdigest/THISMONTH-20010320.htm"
   },
   {
      "description" : "Many database projects use ORMs and other helpers, but using Perl's DBI by itself is easier and faster than you might think.",
      "categories" : "data",
      "tags" : [
         "dbi",
         "dbix-recordset"
      ],
      "title" : "DBI is OK",
      "authors" : [
         "chromatic"
      ],
      "url_path" : "/pub/2001/03/dbiokay",
      "epoch" : 985075200,
      "url" : "https://www.perl.com/pub/2001/03/dbiokay"
   },
   {
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2001/03/p5pdigest/THISWEEK-20010319",
      "epoch" : 984988800,
      "url" : "https://www.perl.com/pub/2001/03/p5pdigest/THISWEEK-20010319",
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl5-porters-digest-subscribe@netthink.co.uk. Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes and additions to the perl5-porters...",
      "categories" : "community",
      "title" : "This Week on p5p 2001/03/19",
      "tags" : []
   },
   {
      "title" : "Creating Modular Web Pages With EmbPerl",
      "tags" : [
         "embperl",
         "epl",
         "html"
      ],
      "categories" : "web",
      "description" : " Table of Contents ÂGetting Started ÂHello World ÂWeb Site Global Variables ÂModular Files ÂModular File Inheritance ÂSubroutines in EmbperlObject ÂConclusions This tutorial is intended as a complement to the Embperl documentation, not a replacement. We assume a basic familiarity...",
      "url" : "https://www.perl.com/pub/2001/03/embperl",
      "epoch" : 984470400,
      "authors" : [
         "neil-gunton"
      ],
      "url_path" : "/pub/2001/03/embperl"
   },
   {
      "url" : "https://www.perl.com/pub/2001/03/p5pdigest/THISWEEK-20010312",
      "url_path" : "/pub/2001/03/p5pdigest/THISWEEK-20010312",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 984384000,
      "title" : "This Week on p5p 2001/03/12",
      "tags" : [],
      "categories" : "community",
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl5-porters-digest-subscribe@netthink.co.uk. Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Changes and additions to the perl5-porters..."
   },
   {
      "epoch" : 983865600,
      "authors" : [
         "nick-temple"
      ],
      "url_path" : "/pub/2001/03/gui",
      "url" : "https://www.perl.com/pub/2001/03/gui",
      "description" : " \"This article originally appeared in Visual Developer Magazine\" Perl is officially known as the \"Practical Extraction and Report Language,\" in part because of its extremely robust text handling abilities. Perl's author, Larry Wall, has a much more colorful name...",
      "categories" : "graphics",
      "tags" : [
         "credit-card",
         "perl",
         "tk"
      ],
      "title" : "Writing GUI Applications in Perl/Tk"
   },
   {
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl5-porters-digest-subscribe@netthink.co.uk. Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. We're trying something new this week,...",
      "categories" : "community",
      "title" : "This Week on p5p 2001/03/05",
      "tags" : [],
      "epoch" : 983779200,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2001/03/p5pdigest/THISWEEK-20010305",
      "url" : "https://www.perl.com/pub/2001/03/p5pdigest/THISWEEK-20010305"
   },
   {
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to perl5-porters-digest@netthink.co.uk; there's also a similar summary for the Perl 6 mailing lists, which you can subscribe to at perl6-digest@netthink.co.uk. Please send corrections...",
      "categories" : "community",
      "title" : "This Week on p5p 2001/02/26",
      "tags" : [],
      "url_path" : "/pub/2001/02/p5pdigest/THISWEEK-20010226",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 983347200,
      "url" : "https://www.perl.com/pub/2001/02/p5pdigest/THISWEEK-20010226"
   },
   {
      "tags" : [
         "database",
         "dbi",
         "dbix-recordset",
         "interface",
         "perl"
      ],
      "title" : "DBIx::Recordset VS DBI",
      "description" : " Problems Using DBI at Application-Level Intolerance to Table and Data Mutation Error-Prone and Tedious Query Construction Manual and Complex Mapping of Database Data to Perl Data Structures Succint CGI-SQL Interaction (Database Control via ``CGI One-Liners'') Control and Monitoring of...",
      "categories" : "data",
      "url" : "https://www.perl.com/pub/2001/02/dbix",
      "epoch" : 983260800,
      "url_path" : "/pub/2001/02/dbix",
      "authors" : [
         "terrence-monroe-brannon"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2001/02/esmith",
      "url_path" : "/pub/2001/02/esmith",
      "authors" : [
         "kirrily-skud-robert"
      ],
      "epoch" : 982656000,
      "title" : "The e-smith Server and Gateway: a Perl Case Study",
      "tags" : [
         "cgi",
         "e-smith",
         "enterprise",
         "linux",
         "template"
      ],
      "categories" : "community",
      "description" : " -> The e-smith server and gateway system is a Linux distribution designed for small to medium enterprises. It's intended to simplify the process of setting up Internet and file-sharing services and can be administered by a non-technical user with..."
   },
   {
      "url_path" : "/pub/2001/02/p6pdigest/THISWEEK-20010218",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 982483200,
      "url" : "https://www.perl.com/pub/2001/02/p6pdigest/THISWEEK-20010218",
      "categories" : "community",
      "description" : " Notes Please send corrections and additions to perl6-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. We looked at over 400 messages this week, about a quarter of which were to do with garbage collection. Again. I'm afraid this...",
      "tags" : [],
      "title" : "This Week on p6p 2001/02/18"
   },
   {
      "tags" : [],
      "title" : "This Week on p5p 2001/02/12",
      "categories" : "community",
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to p5p-digest-subscribe@plover.com. Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. I've been having mail problems this...",
      "url" : "https://www.perl.com/pub/2001/02/p5pdigest/THISWEEK-20010212",
      "epoch" : 982137600,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2001/02/p5pdigest/THISWEEK-20010212"
   },
   {
      "categories" : "perl-6",
      "description" : " \"What *is* going on over there, anyway? It is unfortunately true that the effort looks stalled from the outside.\" &nbsp;&nbsp;&nbsp;&nbsp;- Eric S. Raymond, to the perl6-meta mailing list The push towards the next major version of perl started with...",
      "tags" : [
         "p6p",
         "perl-6"
      ],
      "title" : "Perl 6 Alive and Well! Introducing the perl6-mailing-lists Digest",
      "authors" : [
         "simon-cozens",
         "schuyler-erle"
      ],
      "url_path" : "/pub/2001/02/14/p6p",
      "epoch" : 982137600,
      "url" : "https://www.perl.com/pub/2001/02/14/p6p"
   },
   {
      "tags" : [],
      "title" : "This Week on p5p 2001/02/06",
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to p5p-digest-subscribe@plover.com. Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. Wow. 600 messages this week, and...",
      "categories" : "community",
      "url" : "https://www.perl.com/pub/2001/02/p5pdigest/THISWEEK-20010206",
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2001/02/p5pdigest/THISWEEK-20010206",
      "epoch" : 981446400
   },
   {
      "title" : "Pathologically Polluting Perl",
      "tags" : [
         "c",
         "cpr",
         "inline",
         "python",
         "xs",
         "c-and-perl"
      ],
      "description" : "Pathologically Polluting Perl Table of Contents ÂInline in Action - Simple examples in C ÂHello, world ÂJust Another ____ Hacker ÂWhat about XS and SWIG? ÂOne-Liners ÂSupported Platforms for C ÂThe Inline Syntax ÂFine Dining - A Glimpse at the...",
      "categories" : "perl-internals",
      "url" : "https://www.perl.com/pub/2001/02/inline",
      "epoch" : 981446400,
      "authors" : [
         "brian-ingerson"
      ],
      "url_path" : "/pub/2001/02/inline"
   },
   {
      "url" : "https://www.perl.com/pub/2001/01/p5pdigest/THISWEEK-20010128",
      "epoch" : 980841600,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2001/01/p5pdigest/THISWEEK-20010128",
      "tags" : [],
      "title" : "This Week on p5p 2001/01/28",
      "categories" : "community",
      "description" : " Notes You can subscribe to an email version of this summary by sending an empty message to p5p-digest-subscribe@plover.com. Please send corrections and additions to perl-thisweek-YYYYMM@simon-cozens.org where YYYYMM is the current year and month. There were 317 messages this week,..."
   },
   {
      "epoch" : 980755200,
      "url_path" : "/pub/2001/01/soap",
      "authors" : [
         "paul-kulchenko"
      ],
      "url" : "https://www.perl.com/pub/2001/01/soap",
      "categories" : "web",
      "description" : "Quick Start with SOAP -> Table of Contents ÂQuick Start with SOAPÂWriting a CGI-based ServerÂClientÂPassing ValuesÂAutodispatchingÂObjects accessÂError handlingÂService dispatch (different services on one server)ÂTypes and NamesÂConclusion Part 2 of this series SOAP (Simple Object Access Protocol) is a way for...",
      "title" : "Quick Start with SOAP",
      "tags" : []
   },
   {
      "categories" : "community",
      "description" : " Notes Notes sigsetjmp wrangling continues Safe Signals Large file support wrangling continues Multiple Pre-Incrementing Test::Harness Megapatch Tokeniser reporting and pretty-printing Unicode Various You can subscribe to an email version of this summary by sending an empty message to p5p-digest-subscribe@plover.com....",
      "tags" : [],
      "title" : "This Week on p5p 2001/01/21",
      "epoch" : 980323200,
      "url_path" : "/pub/2001/01/p5pdigest/THISWEEK-20010121",
      "authors" : [
         "simon-cozens"
      ],
      "url" : "https://www.perl.com/pub/2001/01/p5pdigest/THISWEEK-20010121"
   },
   {
      "tags" : [
         "template",
         "toolkit",
         "tt2",
         "xml"
      ],
      "title" : "Creating Data Output Files Using the Template Toolkit",
      "description" : " Table of Contents ÂA more complex example ÂProducing XML ÂMultiple Formats Introducing the Template Toolkit There are a number of Perl modules that are universally recognised as The Right Thing To Use for certain tasks. If you accessed a...",
      "categories" : "data",
      "url" : "https://www.perl.com/pub/2001/01/tt2",
      "url_path" : "/pub/2001/01/tt2",
      "authors" : [
         "dave-cross"
      ],
      "epoch" : 980236800
   },
   {
      "tags" : [],
      "title" : "A Beginner's Introduction to POE",
      "categories" : "development",
      "description" : "A Beginner's Introduction to POE -> By Dennis Taylor, with Jeff Goff What Is POE, And Why Should I Use It? Table of Contents ÂPOE Design ÂA Simple Example ÂThat's All For Today ÂRelated Links Most of the programs we...",
      "url" : "https://www.perl.com/pub/2001/01/poe",
      "epoch" : 979718400,
      "url_path" : "/pub/2001/01/poe",
      "authors" : [
         "jeffrey-goff"
      ]
   },
   {
      "url_path" : "/pub/2001/01/p5pdigest/THISWEEK-20010114",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 979545600,
      "url" : "https://www.perl.com/pub/2001/01/p5pdigest/THISWEEK-20010114",
      "categories" : "community",
      "description" : " Notes Excising sigsetjmp Benchmarking UTF8 Heroism Cygwin versus Windows Lvalue lists Linux large file support Calls for papers Various Notes You can subscribe to an email version of this summary by sending an empty message to p5p-digest-subscribe@plover.com. Please send...",
      "tags" : [],
      "title" : "This Week on p5p 2001/01/14"
   },
   {
      "title" : "This Fortnight on p5p 2000/12/31",
      "tags" : [],
      "description" : " Notes Fix for gv_handler segfault rsync needs occasional delete Outstanding Unicode fix New Solaris hints file Lots of lvalue hackery Stephen McCamant and Doug MacEachern week Things to investigate Various Notes You can subscribe to an e-mail version of...",
      "categories" : "community",
      "url" : "https://www.perl.com/pub/2001/01/p5pdigest/THISWEEK-20010107",
      "epoch" : 979027200,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2001/01/p5pdigest/THISWEEK-20010107"
   },
   {
      "url" : "https://www.perl.com/pub/2001/01/begperl6",
      "url_path" : "/pub/2001/01/begperl6",
      "authors" : [
         "doug-sheppard"
      ],
      "epoch" : 979027200,
      "tags" : [
         "debugging",
         "security",
         "tainting",
         "warnings"
      ],
      "title" : "Beginners Intro to Perl - Part 6",
      "description" : "Editor's note: this venerable series is undergoing updates. You might be interested in the newer versions, available at: A Beginner's Introduction to Perl 5.10 A Beginner's Introduction to Files and Strings with Perl 5.10 A Beginner's Introduction to Regular Expressions...",
      "categories" : "development"
   },
   {
      "categories" : "community",
      "description" : " Notes 5.6.1 Trial is out! Profiling Solaris and Sockets strtoul Language-sensitive editors Numeric conversion on HPUX Various Repository browser Dependency checker Unicode task use constant Updates Miscellany Notes You can subscribe to an email version of this summary by...",
      "tags" : [],
      "title" : "This Week on p5p 2000/12/24",
      "epoch" : 977904000,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2000/12/p5pdigest/THISWEEK-20001225",
      "url" : "https://www.perl.com/pub/2000/12/p5pdigest/THISWEEK-20001225"
   },
   {
      "authors" : [
         "nathan-torkington"
      ],
      "url_path" : "/pub/2000/12/net",
      "epoch" : 977212800,
      "url" : "https://www.perl.com/pub/2000/12/net",
      "description" : " .NET is the latest hype blitz from Microsoft (and you thought it was just a domain). If your eyes are glazing over or you're tempted to write it off as marketing speak, read on. Although Microsoft is loath to...",
      "categories" : "windows",
      "title" : "What every Perl programmer needs to know about .NET",
      "tags" : []
   },
   {
      "epoch" : 977126400,
      "url_path" : "/pub/2000/12/begperl5",
      "authors" : [
         "doug-sheppard"
      ],
      "url" : "https://www.perl.com/pub/2000/12/begperl5",
      "description" : "Objects and Modules -> Editor's note: this venerable series is undergoing updates. You might be interested in the newer versions, available at: A Beginner's Introduction to Perl 5.10 A Beginner's Introduction to Files and Strings with Perl 5.10 A Beginner's...",
      "categories" : "development",
      "tags" : [
         "object-oriented-programming",
         "oop"
      ],
      "title" : "Beginners Intro to Perl - Part 5"
   },
   {
      "title" : "This Week on p5p 2000/12/17",
      "tags" : [],
      "description" : " Notes Object creation and destruction More cool PerlIO stuff What to do with bugs UV Preserving Arithmetic Code checkers Precedence Reminder about the FAQ Various Notes You can subscribe to an email version of this summary by sending an...",
      "categories" : "community",
      "url" : "https://www.perl.com/pub/2000/12/p5pdigest/THISWEEK-20001217",
      "epoch" : 977040000,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2000/12/p5pdigest/THISWEEK-20001217"
   },
   {
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/2000/12/advocacy",
      "epoch" : 976608000,
      "url" : "https://www.perl.com/pub/2000/12/advocacy",
      "description" : null,
      "categories" : "community",
      "title" : "Why I Hate Advocacy",
      "tags" : [
         "advocacy"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2000/12/p5pdigest/THISWEEK-20001210",
      "epoch" : 976521600,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2000/12/p5pdigest/THISWEEK-20001210",
      "title" : "This Week on p5p 2000/12/10",
      "tags" : [],
      "description" : null,
      "categories" : "community"
   },
   {
      "url" : "https://www.perl.com/pub/2000/12/begperl4",
      "epoch" : 976089600,
      "url_path" : "/pub/2000/12/begperl4",
      "authors" : [
         "doug-sheppard"
      ],
      "tags" : [
         "cgi",
         "scripting",
         "security",
         "web"
      ],
      "title" : "Beginners Intro to Perl - Part 4",
      "categories" : "development",
      "description" : " Editor's note: this venerable series is undergoing updates. You might be interested in the newer versions, available at: A Beginner's Introduction to Perl 5.10 A Beginner's Introduction to Files and Strings with Perl 5.10 A Beginner's Introduction to Regular..."
   },
   {
      "url" : "https://www.perl.com/pub/2000/12/p5pdigest/THISWEEK-20001203",
      "epoch" : 975916800,
      "url_path" : "/pub/2000/12/p5pdigest/THISWEEK-20001203",
      "authors" : [
         "simon-cozens"
      ],
      "tags" : [],
      "title" : "This Week on p5p 2000/12/03",
      "categories" : "community",
      "description" : " Notes Tests Charnames Regular Expression Bug xsubpp Perlipc Examples Buggy PerlIO news Dodgy Function Names Lvalue Subs Various Notes You can subscribe to an e-mail version of this summary by sending an empty message to p5p-digest-subscribe@plover.com. Please send corrections..."
   },
   {
      "url_path" : "/pub/2000/11/gnome2",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 975398400,
      "url" : "https://www.perl.com/pub/2000/11/gnome2",
      "categories" : "apps",
      "description" : "Programming GNOME Applications with Perl, Part Two -> Table of Contents ÂThe Cookbook Application ÂThe Main Screen ÂColumned Lists ÂDisplaying Recipes ÂWhere We Are, And Where We're Going ÂNotes on the Last Article Last month's article examined how to create...",
      "tags" : [],
      "title" : "Programming GNOME Applications with Perl - Part 2"
   },
   {
      "url" : "https://www.perl.com/pub/2000/11/repair3x",
      "epoch" : 975398400,
      "url_path" : "/pub/2000/11/repair3x",
      "authors" : [
         "mark-jason-dominus"
      ],
      "tags" : [],
      "title" : "Red Flags Return",
      "categories" : "development",
      "description" : "What's Wrong With This Picture? -> Astute readers had a number of comments about last week's Program Repair Shop and Red Flags article. Control Flow Puzzle In the article, I had a section of code that looked like this: $_..."
   },
   {
      "epoch" : 975312000,
      "url_path" : "/pub/2000/11/p5pdigest/THISWEEK-20001127",
      "authors" : [
         "simon-cozens"
      ],
      "url" : "https://www.perl.com/pub/2000/11/p5pdigest/THISWEEK-20001127",
      "description" : " Notes Regexp Engine SOCKS and Sockets for, map and grep Encode Licensing PERL5OPT Unicode on Big Iron Carp SvTEMP Locales and Floats Low-Hanging Fruit Miscellaneous Notes You can subscribe to an e-mail version of this summary by sending an...",
      "categories" : "community",
      "tags" : [],
      "title" : "This Week on p5p 2000/11/27"
   },
   {
      "description" : "s/// and m// -> Editor's note: this venerable series is undergoing updates. You might be interested in the newer versions, available at: A Beginner's Introduction to Perl 5.10 A Beginner's Introduction to Files and Strings with Perl 5.10 A Beginner's...",
      "categories" : "development",
      "title" : "Beginner's Introduction to Perl - Part 3",
      "tags" : [],
      "url_path" : "/pub/2000/11/begperl3",
      "authors" : [
         "doug-sheppard"
      ],
      "epoch" : 974707200,
      "url" : "https://www.perl.com/pub/2000/11/begperl3"
   },
   {
      "url_path" : "/pub/2000/11/p5pdigest/THISWEEK-20001120",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 974707200,
      "url" : "https://www.perl.com/pub/2000/11/p5pdigest/THISWEEK-20001120",
      "categories" : "community",
      "description" : "> Notes Fixing the Regexp Engine UTF8 and Charnames PerlIO (again) =head3 (again) New subs.pm Congratulations Various Notes You can subscribe to an e-mail version of this summary by sending an empty message to p5p-digest-subscribe@plover.com. Please send corrections and additions...",
      "tags" : [],
      "title" : "This Week on p5p 2000/11/20"
   },
   {
      "title" : "Program Repair Shop and Red Flags",
      "tags" : [
         "style-guides"
      ],
      "categories" : "development",
      "description" : " What's wrong with this picture? The Interface The Code open_info_file start_info_file start_next_part read_next_node Looking for the menu Putting It All Together Red Flags Don't Repeat Code eof() return 0 and return undef Brief Confession What's wrong with this picture?...",
      "url" : "https://www.perl.com/pub/2000/11/repair3",
      "url_path" : "/pub/2000/11/repair3",
      "authors" : [
         "mark-jason-dominus"
      ],
      "epoch" : 974188800
   },
   {
      "description" : " Notes stat vs. lstat Threads and POSIX PerlIO README.Solaris Locales Integer handling revisited =head3 Little fixes Various Notes You can subscribe to an e-mail version of this summary by sending an empty message to p5p-digest-subscribe@plover.com. Please send corrections and...",
      "categories" : "community",
      "title" : "This Week on p5p 2000/11/14",
      "tags" : [],
      "epoch" : 974188800,
      "url_path" : "/pub/2000/11/p5pdigest/THISWEEK-20001114",
      "authors" : [
         "simon-cozens"
      ],
      "url" : "https://www.perl.com/pub/2000/11/p5pdigest/THISWEEK-20001114"
   },
   {
      "description" : " Notes Error number parsing VMS hackery The (f)crypt of mystery Yet more self-ties Rsync vs. FTP'ing the patches Changes to README.aix The Regex Stack Problem Things nobody's fixed Craig Berry Various Notes You can subscribe to an email version...",
      "categories" : "community",
      "tags" : [],
      "title" : "This Week on p5p 2000/11/07",
      "epoch" : 973584000,
      "url_path" : "/pub/2000/11/p5pdigest/THISWEEK-20001107",
      "authors" : [
         "simon-cozens"
      ],
      "url" : "https://www.perl.com/pub/2000/11/p5pdigest/THISWEEK-20001107"
   },
   {
      "url" : "https://www.perl.com/pub/2000/11/begperl2",
      "epoch" : 973584000,
      "url_path" : "/pub/2000/11/begperl2",
      "authors" : [
         "doug-sheppard"
      ],
      "title" : "Beginner's Introduction to Perl - Part 2",
      "tags" : [],
      "description" : " Editor's note: this venerable series is undergoing updates. You might be interested in the newer versions, available at: A Beginner's Introduction to Perl 5.10 A Beginner's Introduction to Files and Strings with Perl 5.10 A Beginner's Introduction to Regular...",
      "categories" : "development"
   },
   {
      "url" : "https://www.perl.com/pub/2000/11/jarkko",
      "epoch" : 973238400,
      "authors" : [
         "jarkko-hietaniemi"
      ],
      "url_path" : "/pub/2000/11/jarkko",
      "tags" : [],
      "title" : "Hold the Sackcloth and Ashes",
      "description" : " (This is a slightly edited and expanded version of the reply I sent to perl6-meta@perl.org spurred by Mark-Jason Dominus sending the URL to his critique on the Perl 6 RFC process.) I agree partly on Mark-Jason Dominus' critique, but...",
      "categories" : "community"
   },
   {
      "url" : "https://www.perl.com/pub/2000/11/perl6rfc",
      "epoch" : 972979200,
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/2000/11/perl6rfc",
      "tags" : [],
      "title" : "Critique of the Perl 6 RFC Process",
      "description" : " Table of Contents ÂProblems with Proposals of Major Changes ÂProblems with Proposals of Minor Changes ÂMiscellaneous Problems ÂOverall Problems ÂBottom Line A Very Brief Summary Discussion of major changes is pointless in the absence of a familiarity with internals...",
      "categories" : "community"
   },
   {
      "title" : "This Week on p5p 2000/10/30",
      "tags" : [],
      "description" : " Notes sprintf Parameter Re-ordering The Dangers (and bugs) of Unicode Self-Tying Is Broken Configure Confused By Changing Architectures Encode Switch Various Notes You can subscribe to an email version of this summary by sending an empty message to p5p-digest-subscribe@plover.com....",
      "categories" : "community",
      "url" : "https://www.perl.com/pub/2000/10/p5pdigest/THISWEEK-20001030",
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2000/10/p5pdigest/THISWEEK-20001030",
      "epoch" : 972892800
   },
   {
      "tags" : [],
      "title" : "Last Chance to Support Damian Conway",
      "description" : " $16,500 pledged, another $11,000 needed to liberate Damian Conway. As reported earlier, the Yet Another Society (YAS) is putting together a grant to Monash University, Australia. The grant will fund Damian Conway's full-time work on Perl for a year....",
      "categories" : "community",
      "url" : "https://www.perl.com/pub/2000/10/conway",
      "url_path" : "/pub/2000/10/conway",
      "authors" : [
         "nathan-torkington"
      ],
      "epoch" : 972547200
   },
   {
      "authors" : [
         "larry-wall"
      ],
      "url_path" : "/pub/2000/10/23/soto2000",
      "epoch" : 972374400,
      "url" : "https://www.perl.com/pub/2000/10/23/soto2000",
      "description" : " Hear Larry Wall's Keynote (Because of the time length, we've broken up Larry Wall's keynote at O'Reilly's Open Source Roundtable into four seperate audio files.) &nbsp; Part One MP3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RealPlayer &nbsp; Part Two MP3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RealPlayer &nbsp; Part Three MP3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RealPlayer &nbsp; Q...",
      "categories" : "community",
      "tags" : [
         "larry-wall",
         "perl"
      ],
      "title" : "State of the Onion 2000"
   },
   {
      "description" : " Notes What is our Unicode model? Why not use sfio? More than 256 Files / sysopen What if cc changes? Unicode on EBCDIC AIX Is Confused Unicode split fixed! Fixes to Carp open() might fail Perl 5 is 5!...",
      "categories" : "community",
      "tags" : [],
      "title" : "These Weeks on p5p 2000/10/23",
      "epoch" : 972288000,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2000/10/p5pdigest/THISWEEK-20001023",
      "url" : "https://www.perl.com/pub/2000/10/p5pdigest/THISWEEK-20001023"
   },
   {
      "epoch" : 971683200,
      "authors" : [
         "doug-sheppard"
      ],
      "url_path" : "/pub/2000/10/begperl1",
      "url" : "https://www.perl.com/pub/2000/10/begperl1",
      "categories" : "development",
      "description" : " Editor's note: this venerable series is undergoing updates. You might be interested in the newer versions, available at: A Beginner's Introduction to Perl 5.10 A Beginner's Introduction to Files and Strings with Perl 5.10 A Beginner's Introduction to Regular...",
      "title" : "Beginner's Introduction to Perl",
      "tags" : []
   },
   {
      "url_path" : "/pub/2000/10/gnome",
      "authors" : [
         "perldotcom"
      ],
      "epoch" : 971683200,
      "url" : "https://www.perl.com/pub/2000/10/gnome",
      "categories" : "apps",
      "description" : " -> Table of Contents ÂArchitecture Introduction ÂHello, World ÂAdding a Menu Bar ÂAdding an About Box ÂAdding More Chrome ÂFinal Program GNOME is the Unix desktop. It's a framework for writing graphical applications with Unix, providing drag-and-drop, interapplication communication,...",
      "title" : "Programming GNOME Applications with Perl",
      "tags" : []
   },
   {
      "categories" : "community",
      "description" : " Notes Self-tying is broken Virtual values Why is unshift slow? More Perl hacking guidelines Integer and floating-point handling printf %v format bug fixed Jarkko impersonates me Various Notes First, the meta-news this week is that you have a new...",
      "title" : "This Week on p5p 2000/10/08",
      "tags" : [],
      "url_path" : "/pub/2000/10/p5pdigest/THISWEEK-20001008",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 970992000,
      "url" : "https://www.perl.com/pub/2000/10/p5pdigest/THISWEEK-20001008"
   },
   {
      "categories" : "community",
      "description" : "YAPC::Europe::London -> This is written for those poor souls who couldn't make it to give them aflavor of the wonderful event they missed. Despite being an ex-Londoner, I got on the wrong tube Friday morning. The train was packed and...",
      "title" : "Report from YAPC::Europe",
      "tags" : [],
      "url_path" : "/pub/2000/10/yapc-europe",
      "authors" : [
         "mark-summerfield"
      ],
      "epoch" : 970473600,
      "url" : "https://www.perl.com/pub/2000/10/yapc-europe"
   },
   {
      "categories" : "community",
      "description" : " Everyone who has read the Camel Book knows that the three great virtues of programming are laziness, impatience and hubris. Most of the columns that appear here at www.perl.com have to do, in one way or another, with either...",
      "tags" : [
         "oddities"
      ],
      "title" : "How Perl Helped Me Win the Office Football Pool",
      "epoch" : 970473600,
      "authors" : [
         "walt-mankowski"
      ],
      "url_path" : "/pub/2000/10/footpool",
      "url" : "https://www.perl.com/pub/2000/10/footpool"
   },
   {
      "url_path" : "/pub/2000/09/ilya",
      "authors" : [
         "joe-johnston"
      ],
      "epoch" : 969436800,
      "url" : "https://www.perl.com/pub/2000/09/ilya",
      "categories" : "community",
      "description" : null,
      "title" : "Ilya Regularly Expresses",
      "tags" : []
   },
   {
      "url" : "https://www.perl.com/pub/2000/09/sapphire",
      "epoch" : 969350400,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2000/09/sapphire",
      "title" : "Sapphire",
      "tags" : [
         "perl-internals"
      ],
      "categories" : "perl-internals",
      "description" : " Table of Contents ÂDesign Principles ÂSo, uh, what is it? ÂWhere did it get? ÂWhat else can be done? ÂWhat can't be done? ÂStructure of a Sapphire ÂThe future of Sapphire ÂReflections through a Sapphire Naming languages after stones..."
   },
   {
      "title" : "Guide to the Perl 6 Working Groups",
      "tags" : [
         "lists"
      ],
      "categories" : "perl-6",
      "description" : " Table of Contents &#149;Announcements and Overviews &#149;Internals &#149;Language &nbsp;&nbsp;&#149;perl6-language-data &nbsp;&nbsp;&#149;perl6-language-datetime &nbsp;&nbsp;&#149;perl6-language-errors &nbsp;&nbsp;&#149;perl6-language-flow &nbsp;&nbsp;&#149;perl6-language-io &nbsp;&nbsp;&#149;perl6-language-mlc &nbsp;&nbsp;&#149;perl6-language-objects &nbsp;&nbsp;&#149;perl6-language-regex &nbsp;&nbsp;&#149;perl6-language-strict &nbsp;&nbsp;&#149;perl6-language-subs &nbsp;&nbsp;&#149;perl6-language-unlink &#149;Miscellaneous Larry said at the Perl conference this summer that the old model of Perl development was not working well...",
      "url" : "https://www.perl.com/pub/2000/09/perl6mail",
      "url_path" : "/pub/2000/09/perl6mail",
      "authors" : [
         "mark-jason-dominus"
      ],
      "epoch" : 968140800
   },
   {
      "url" : "https://www.perl.com/pub/2000/08/conway",
      "url_path" : "/pub/2000/08/conway",
      "authors" : [
         "joe-johnston"
      ],
      "epoch" : 966844800,
      "tags" : [
         "object-oriented",
         "open-source",
         "perl"
      ],
      "title" : "Damian Conway Talks Shop",
      "categories" : "community",
      "description" : " Dr. Damian Conway is best known in the United States for authoring Object Oriented Perl, published by Manning. His lectures at Perl conferences are becoming legendary and are a joy for Perl hackers of all levels. I managed to..."
   },
   {
      "title" : "Report from the Perl Conference",
      "tags" : [],
      "description" : " Were do I begin? Like Willy Wonka said, \"..the beginning is a very good place to start...\" So let's start with my journey to the conference. Day 0: July 15, 2000 My flight to San Jose wasn't delayed too...",
      "categories" : "community",
      "url" : "https://www.perl.com/pub/2000/08/tpc4",
      "url_path" : "/pub/2000/08/tpc4",
      "authors" : [
         "joe-kline"
      ],
      "epoch" : 966844800
   },
   {
      "url" : "https://www.perl.com/pub/2000/07/perl6",
      "url_path" : "/pub/2000/07/perl6",
      "authors" : [
         "mark-jason-dominus"
      ],
      "epoch" : 964512000,
      "title" : "Report on the Perl 6 Announcement",
      "tags" : [],
      "categories" : "perl-6",
      "description" : " \"The Effort to Write Perl 6 Has Begin In Earnest\" Before Stuck How? Tuesday What About Perl 6? Questions Will Perl 6 be in C++? When can we expect the grand plan? Will Perl 6 have a spec? Will..."
   },
   {
      "epoch" : 963302400,
      "url_path" : "/pub/2000/06/27/perlbook",
      "authors" : [
         "simon-cozens"
      ],
      "url" : "https://www.perl.com/pub/2000/06/27/perlbook",
      "description" : " There are a huge number of books out there about Perl. A quick search on Amazon reveals 362 books; allowing for false positives and books where Perl is a minor part, I'd conservatively estimate there to be over 250 books...",
      "categories" : "community",
      "title" : "Choosing a Perl Book",
      "tags" : []
   },
   {
      "url" : "https://www.perl.com/pub/2000/07/yapc19101",
      "epoch" : 963302400,
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/2000/07/yapc19101",
      "title" : "Reports from YAPC 19100",
      "tags" : [],
      "description" : "Lightning Reports from YAPC -> Reports from: ÂSchuyler D. Erle ÂAvi ÂGene Boggs: Day 2 ÂSean M. Burke ÂUri Guttman ÂBrad Murray ÂLisa Nyman: Report from a First-time Presenter ÂClinton Pierce ÂNathan Torkington ÂAdam Turoff ÂMark-Jason Dominus Last month Yet...",
      "categories" : "community"
   },
   {
      "url" : "https://www.perl.com/pub/2000/07/p5pdigest/THISWEEK-20000709",
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/2000/07/p5pdigest/THISWEEK-20000709",
      "epoch" : 963129600,
      "tags" : [],
      "title" : "This Week on p5p 2000/07/09",
      "categories" : "community",
      "description" : " Notes NEW! RDF Available Bug Database buildtoc use namespace Unicode Input Solution tr/a-z-0// Mutual use sprintf tests Complex Expressions in Formats Threading Failure Test Case What does changing PL_sh_path do? UNTIE Method Sarathy Fixes a Bug that Nobody Knew..."
   },
   {
      "url" : "https://www.perl.com/pub/2000/07/p5pdigest/THISWEEK-20000702",
      "epoch" : 962524800,
      "url_path" : "/pub/2000/07/p5pdigest/THISWEEK-20000702",
      "authors" : [
         "mark-jason-dominus"
      ],
      "tags" : [],
      "title" : "This Week on p5p 2000/07/02",
      "description" : " Notes More Unicode Unicode Handling HOWTO Unicode Regex Matching I18N FAQ Normalization Simon Stops Working on Unicode Speeding up method lookups my __PACKAGE__ $foo cfgperl Missing Methods Signals on Windows New File::Spec Another depressing regex engine bug s/// Appears...",
      "categories" : "community"
   },
   {
      "title" : "Notes on Doug's Method Lookup Patch",
      "tags" : [],
      "description" : null,
      "categories" : "community",
      "url" : "https://www.perl.com/pub/2000/06/dougpatch",
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2000/06/dougpatch",
      "epoch" : 962092800
   },
   {
      "epoch" : 961920000,
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/2000/06/p5pdigest/THISWEEK-20000625",
      "url" : "https://www.perl.com/pub/2000/06/p5pdigest/THISWEEK-20000625",
      "description" : " Notes Method Lookup Speedup tr///CU and tr///UC Removed is_utf8_string Byte-Order Marks Return pack(\"U\") Lexical variables and eval() FILEGV perlhacktut perlutil.pod Missing Methods Suppress prototype mismatch warnings Autoloaded Constants not Inlined lib.pm use English Numeric opens in IPC::Open3 Regex Bug...",
      "categories" : "community",
      "title" : "This Week on p5p 2000/06/25",
      "tags" : []
   },
   {
      "description" : " Unprogramming Computing the remainder Splitting the Input Into Chunks Assembling the Result Red Flags Eliminate synthetic code Beware of special cases in loops Don't apply string operations to numbers Unprogramming A few weeks ago I got mail from Bruce,...",
      "categories" : "development",
      "title" : "Return of Program Repair Shop and Red Flags",
      "tags" : [],
      "url_path" : "/pub/2000/06/commify",
      "authors" : [
         "mark-jason-dominus"
      ],
      "epoch" : 961228800,
      "url" : "https://www.perl.com/pub/2000/06/commify"
   },
   {
      "title" : "This Week on p5p 2000/06/18",
      "tags" : [],
      "description" : " Notes Method Call Speedups More Attempts to Make B::Bytecode Faster Byte-Order Marks Continue Slurp Bug EPOC Port README.hpux Paths in MacPerl Non-destructed anonymous functions Extensions required for regression tests Eudora Problem crypt docs Magic Auto-Decrement Various Notes You can...",
      "categories" : "community",
      "url" : "https://www.perl.com/pub/2000/06/p5pdigest/THISWEEK-20000618",
      "epoch" : 961228800,
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/2000/06/p5pdigest/THISWEEK-20000618"
   },
   {
      "epoch" : 960883200,
      "authors" : [
         "adam-turoff"
      ],
      "url_path" : "/pub/2000/06/perlwhirl",
      "url" : "https://www.perl.com/pub/2000/06/perlwhirl",
      "description" : "Adventures on Perl Whirl 2000 -> Can a tech conference on a luxury cruise boat possibly be legitimate? Sure it is, and then some. This past Memorial Day, I joined about 200 attendees on Perl Whirl 2000, the inaugural Geek...",
      "categories" : "community",
      "tags" : [],
      "title" : "Adventures on Perl Whirl 2000"
   },
   {
      "url" : "https://www.perl.com/pub/2000/06/p5pdigest/THISWEEK-20000611",
      "epoch" : 960883200,
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/2000/06/p5pdigest/THISWEEK-20000611",
      "title" : "This Week on p5p 2000/06/11",
      "tags" : [],
      "description" : " Notes Byte-Order Marks Magic Auto-Decrement Bug Reports Core Dump I Core Dump II Exit status obliterated by system() after exit()-> Class::Struct objects misbehave with -&gt;isa() Data::Dumper Weirdness Blessed coderefs never DESTROYed Code compiled incorrectly MacPerl Test Suite Patches Why...",
      "categories" : "community"
   },
   {
      "epoch" : 960278400,
      "authors" : [
         "joe-johnston"
      ],
      "url_path" : "/pub/2000/06/rosler",
      "url" : "https://www.perl.com/pub/2000/06/rosler",
      "categories" : "community",
      "description" : " An Interview with HP's Larry Rosler Larry Rosler was both editor of the draft standard and chairman of the Language Subcommittee for X3J11. He helped put 'ANSI' in front of C. He is also just another Perl hacker. Larry...",
      "tags" : [],
      "title" : "ANSI Standard Perl?"
   },
   {
      "url" : "https://www.perl.com/pub/2000/06/p5pdigest/THISWEEK-20000604",
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/2000/06/p5pdigest/THISWEEK-20000604",
      "epoch" : 960105600,
      "title" : "This Week on p5p 2000/06/04",
      "tags" : [],
      "categories" : "community",
      "description" : " Notes Ilya Quits B::Bytecode is Ineffective Ben's map Patch split Oddities scalar Operator Doesn't perlmodlib perlnewmod Method Lookup Caching Perl in Russia Eudora Problem h2xs Backward Compatibility Various Notes You can subscribe to an email version of this summary..."
   },
   {
      "url_path" : "/pub/2000/05/p5pdigest/THISWEEK-20000528",
      "authors" : [
         "mark-jason-dominus"
      ],
      "epoch" : 959500800,
      "url" : "https://www.perl.com/pub/2000/05/p5pdigest/THISWEEK-20000528",
      "description" : " Notes Regex Engine Enhancements eq and UTF8 operator Caching of the get*by* Functions Forbidden Declarations Continued Perl in the News readonly Pragma Continues Magical Autoincrement Doctor, Doctor, it Hurts When I Do This! use strict 'formatting' Complex Expressions in...",
      "categories" : "community",
      "tags" : [],
      "title" : "This Week on p5p 2000/05/28"
   },
   {
      "title" : "This Week on p5p 2000/05/21",
      "tags" : [],
      "categories" : "community",
      "description" : " Notes my $x if 0; Trick Zero-padded numbers in formats Forbidden Declarations Port to Windows/CE chat2.pl is Still There pod2latex Long Regexes UTF8 Hash Keys UTF8 String Patches mktables.pl has Been Addressed More Environmental Problems readonly Pragma Tutorials Brad...",
      "url" : "https://www.perl.com/pub/2000/05/p5pdigest/THISWEEK-20000521",
      "epoch" : 958896000,
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/2000/05/p5pdigest/THISWEEK-20000521"
   },
   {
      "url_path" : "/pub/2000/05/podparser",
      "authors" : [
         "brad-appleton"
      ],
      "epoch" : 958809600,
      "url" : "https://www.perl.com/pub/2000/05/podparser",
      "description" : "Pod::Parser Notes -> Some of my co-workers noticed the p5p weekly summary discussing (among other things) Pod::Parser. They mentioned it to me, and said they thought it cast me in an unfavorable light. So I'd like to clear up a...",
      "categories" : "development",
      "tags" : [],
      "title" : "Pod::Parser Notes"
   },
   {
      "epoch" : 958377600,
      "url_path" : "/pub/2000/05/cobol",
      "authors" : [
         "mark-jason-dominus"
      ],
      "url" : "https://www.perl.com/pub/2000/05/cobol",
      "categories" : "community",
      "description" : " A few weeks ago I went to do a four-day beginning Perltraining at a local utility company. It was quite different from other training classes I'd given. Typically, my students have some Unix and C experience. These students, however,...",
      "title" : "Perl Meets COBOL",
      "tags" : []
   },
   {
      "title" : "This Week on p5p 2000/05/14",
      "tags" : [],
      "categories" : "community",
      "description" : " Notes Regex Stress Testing Another Thread-Safing Patch Enormous perldoc discussion winds up Build patches for OS/2 Regex Engine Method calls on unblessed references Version Tuples Broken? Negative Subscripts for Tied Arrays Upcoming corrections Various Notes You can subscribe to...",
      "url" : "https://www.perl.com/pub/2000/05/p5pdigest/THISWEEK-20000514",
      "epoch" : 958291200,
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/2000/05/p5pdigest/THISWEEK-20000514"
   },
   {
      "url_path" : "/pub/2000/05/p5pdigest/THISWEEK-20000507",
      "authors" : [
         "mark-jason-dominus"
      ],
      "epoch" : 957686400,
      "url" : "https://www.perl.com/pub/2000/05/p5pdigest/THISWEEK-20000507",
      "categories" : "community",
      "description" : " Notes Moderation is Imminent Simon's Guide to p5p Big Discussion of perldoc and Indexing X&lt;> splitpod Aliases perldoc Wishlist Tom's Plan Editorial Opinion Section Mark Fisher's man Replacement Pod::Parser Output Model roffitall Patches to perlre mktables.PL Needs Work Jarkko...",
      "title" : "This Week on p5p 2000/05/07",
      "tags" : []
   },
   {
      "epoch" : 957254400,
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/2000/04/raceinfo",
      "url" : "https://www.perl.com/pub/2000/04/raceinfo",
      "categories" : "development",
      "description" : "What's wrong with this picture? -> What's wrong with this picture? Reading the Input Computing Average and Total Times Sort Order Printing the Report Red Flags Get Rid of Array Size Variables Use Compound Data Structures Instead of Variable Families...",
      "title" : "Program Repair Shop and Red Flags",
      "tags" : [
         "perl-conference"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/2000/04/p5pdigest/THISWEEK-20000430",
      "url_path" : "/pub/2000/04/p5pdigest/THISWEEK-20000430",
      "authors" : [
         "mark-jason-dominus"
      ],
      "epoch" : 957081600,
      "tags" : [],
      "title" : "This Week on p5p 2000/04/30",
      "description" : " Notes Line Disciplines Continue Ben Tilly Fixes map Gack! Big Bug in 5.6 More pack Options IPC::BashEm perldiag Re-alphabetized Poor Diagnosis of sort Errors glob() function not documented Overloading Assignment POSIX Character Classes First Cite for 'Perl'? Various Notes...",
      "categories" : "community"
   },
   {
      "categories" : "community",
      "description" : " Notes Meta-Information Brief Update p5p to become Refereed? perlretut and perlrequick Threading Hilarity Line Disciplines Older Discussion of Disciplines Big Line Numbers Pseudohash Field Names, Hash Performance, and map Performance C with Embedded Perl `Unreachable' code. sprintf Precision SDF...",
      "tags" : [],
      "title" : "This Week on p5p 2000/04/23",
      "epoch" : 956476800,
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/2000/04/p5pdigest/THISWEEK-20000423",
      "url" : "https://www.perl.com/pub/2000/04/p5pdigest/THISWEEK-20000423"
   },
   {
      "title" : "What's New in 5.6.0.",
      "tags" : [
         "unicode"
      ],
      "description" : " Table of Contents &nbsp;&nbsp;&#149;&nbsp;Unicode - Perl goes&nbsp;&nbsp;&nbsp;&nbsp;international! &nbsp;&nbsp;&#149; Better Building &nbsp;&nbsp;&#149; Improved Compiler &nbsp;&nbsp;&#149; Version Tuples &nbsp;&nbsp;&#149; Lexical Warnings &nbsp;&nbsp;&#149; Lvaluable Subroutines &nbsp;&nbsp;&#149; Weak References &nbsp;&nbsp;&#149; POSIX Character&nbsp;&nbsp;&nbsp;&nbsp;Classes &nbsp;&nbsp;&#149; Miscellaneous Bits `Darn it, who spiked my coffee with water?!'...",
      "categories" : "community",
      "url" : "https://www.perl.com/pub/2000/04/whatsnew",
      "epoch" : 956044800,
      "authors" : [
         "simon-cozens"
      ],
      "url_path" : "/pub/2000/04/whatsnew"
   },
   {
      "tags" : [],
      "title" : "POD is not Literate Programming",
      "categories" : "development",
      "description" : null,
      "url" : "https://www.perl.com/pub/tchrist/litprog",
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/tchrist/litprog",
      "epoch" : 953539200
   },
   {
      "description" : " My Life with Spam -> How I Caught the Spam and What I Did With it When I Caught it This article is the third in a series; you may want to read Part 1 and Part 2 if...",
      "categories" : "email",
      "tags" : [
         "spam"
      ],
      "title" : "My Life With Spam: Part 3",
      "epoch" : 953107200,
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/2000/03/spam3",
      "url" : "https://www.perl.com/pub/2000/03/spam3"
   },
   {
      "tags" : [],
      "title" : "This Week on p5p 2000/03/05",
      "description" : " Notes Meta-Information Brief Update Module Warnings POD Changes Race conditions in statndard Perl utilities open Calls not checked in perldoc Big Flame Wars Chip and Jarkko Quit Templates in pack and unpack use strict in the core modules Various...",
      "categories" : "community",
      "url" : "https://www.perl.com/pub/2000/03/p5pdigest/THISWEEK-20000305",
      "epoch" : 952243200,
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/2000/03/p5pdigest/THISWEEK-20000305"
   },
   {
      "categories" : "community",
      "description" : " Beginning Perl : Ten Perl Myths -> Introduction Table of Contents ÂPerl is hard ÂPerl looks like line noise ÂPerl is hard because it has regexps ÂPerl is hard because it has references ÂPerl is just for Unix ÂPerl...",
      "tags" : [],
      "title" : "Ten Perl Myths",
      "url_path" : "/pub/2000/01/10PerlMyths",
      "authors" : [
         "simon-cozens"
      ],
      "epoch" : 951292800,
      "url" : "https://www.perl.com/pub/2000/01/10PerlMyths"
   },
   {
      "epoch" : 950083200,
      "url_path" : "/pub/2000/02/spamfilter",
      "authors" : [
         "mark-jason-dominus"
      ],
      "url" : "https://www.perl.com/pub/2000/02/spamfilter",
      "categories" : "email",
      "description" : "My Life with Spam -> or How I Caught the Spam and What I Did With It When I Caught it -> I wrote Part 1 of this series back in October 1999 for the LinuxPlanet web site, but the...",
      "tags" : [
         "spam"
      ],
      "title" : "My Life With Spam"
   },
   {
      "url" : "https://www.perl.com/pub/2000/01/rss",
      "epoch" : 948787200,
      "url_path" : "/pub/2000/01/rss",
      "authors" : [
         "chris-nandor"
      ],
      "tags" : [],
      "title" : "RSS and You",
      "categories" : "web",
      "description" : " RSS is Born Contents: Â RSS is Born Â XML::RSS Â my_portal Â Future of my_portal Netscape had one of the first \"portals\" on the Web, a place where users could go to get most of their information needs..."
   },
   {
      "url_path" : "/pub/2000/01/CodingStandards",
      "authors" : [
         "kirrily-skud-robert"
      ],
      "epoch" : 947664000,
      "url" : "https://www.perl.com/pub/2000/01/CodingStandards",
      "description" : " How to Create Coding Standards that Work One of the things that we love most about Perl is its flexibility, itssimilarity to natural language, and the fact that There's More Than One Way To Do It. Of course, when...",
      "categories" : "development",
      "tags" : [
         "standards"
      ],
      "title" : "In Defense of Coding Standards"
   },
   {
      "categories" : "community",
      "description" : " Notes Meta-Information Module Interface and Version Meta-Information SVs by Default Another return of PREPARE More Flushing Problems Array::Virtual #line directives DProf Various Notes Last year I fell behind on reports because I took three business trips in two weeks....",
      "title" : "This Week on p5p 1999/12/26",
      "tags" : [],
      "epoch" : 946195200,
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/1999/12/p5pdigest/THISWEEK-19991226",
      "url" : "https://www.perl.com/pub/1999/12/p5pdigest/THISWEEK-19991226"
   },
   {
      "categories" : "community",
      "description" : " This summer, at yapc in Pittsburgh and again at the third Perl Conference, I was very fortunate to meet with a lot of friends from other regional Perl Monger groups. A lot of our groups have similar problems and...",
      "title" : "Virtual Presentations with Perl",
      "tags" : [
         "perl-mongers"
      ],
      "url_path" : "/pub/1999/12/virtual-presentations",
      "authors" : [
         "adam-turoff"
      ],
      "epoch" : 945676800,
      "url" : "https://www.perl.com/pub/1999/12/virtual-presentations"
   },
   {
      "url" : "https://www.perl.com/pub/1999/12/p5pdigest/THISWEEK-19991219",
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/1999/12/p5pdigest/THISWEEK-19991219",
      "epoch" : 945590400,
      "tags" : [],
      "title" : "This Week on p5p 1999/12/19",
      "categories" : "community",
      "description" : " Notes Meta-Information More 5.005_63 Results $^H and %^H Perl RPMs Development Continues on Ilya's Patches Change to xsubpp Closed Filhandle in Signal Handler pad_findlex Needs to be Recursive Conversion Specifier Bug The Trivial Test eof() at the Beginning of..."
   },
   {
      "title" : "Happy Birthday Perl!",
      "tags" : [],
      "categories" : "community",
      "description" : "According to the perlhist man page, Perl was first released twelve years ago today, on December 18, 1987. Congratulations to Larry Wall on the occasion of Perl's twelfth birthday!...",
      "url" : "https://www.perl.com/pub/1999/12/happybirthday",
      "epoch" : 945504000,
      "url_path" : "/pub/1999/12/happybirthday",
      "authors" : [
         "mark-jason-dominus"
      ]
   },
   {
      "epoch" : 944985600,
      "url_path" : "/pub/1999/12/p5pdigest/THISWEEK-19991212",
      "authors" : [
         "mark-jason-dominus"
      ],
      "url" : "https://www.perl.com/pub/1999/12/p5pdigest/THISWEEK-19991212",
      "description" : " Notes Meta-Information 5.005_63 Released Development Continues on Ilya's Patches Regex Optimizations PREPARE XSLoader Change to xsubpp Path Location New Improved File::Find DB_File Locking Technique use Parameters in XS Module Initializations next in XS-invoked Perl subroutines -Dp improvement Log::Agent Getopt::Long...",
      "categories" : "community",
      "title" : "This Week on p5p 1999/12/12",
      "tags" : []
   },
   {
      "epoch" : 944380800,
      "url_path" : "/pub/1999/12/p5pdigest/THISWEEK-19991205",
      "authors" : [
         "mark-jason-dominus"
      ],
      "url" : "https://www.perl.com/pub/1999/12/p5pdigest/THISWEEK-19991205",
      "categories" : "community",
      "description" : " Notes Meta-Information m//g in List Context eof() at the Beginning of the Input Shadow Passwords Continue Perl, EBCDIC, and Unicode lock Keyword Safe::Hole Change to xsubpp Euphoria Talarian SmartSockets perlxstut and perlxs Additions Reset umasks Mailling List Archives Unavailable...",
      "title" : "This Week on p5p 1999/12/05",
      "tags" : []
   },
   {
      "url" : "https://www.perl.com/pub/1999/11/sins",
      "epoch" : 943948800,
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/1999/11/sins",
      "title" : "Sins of Perl Revisited",
      "tags" : [],
      "description" : "Sins of Perl Revisited -> Sins of Perl Revisited Implicit Behaviors and Hidden Context Dependencies To Paren || ! To Paren? Global Variables References vs. Non-references No Prototypes No Compiler Support for I/O or Regex Objects Haphazard Exception Model New...",
      "categories" : "development"
   },
   {
      "categories" : "community",
      "description" : " Notes New Meta-Information Thread Model Discussion Discussion of Line Disciplines Continues Shadow Passwords Bugs in NT Perl Sockets? Run Out of File Descriptors Lexical Variable Leak Control-Backslash Bitwise Operators Taint Bug? next Outside a Block Quiet List Various Notes...",
      "tags" : [],
      "title" : "This Week on p5p 1999/11/28",
      "url_path" : "/pub/1999/11/p5pdigest/THISWEEK-19991128",
      "authors" : [
         "mark-jason-dominus"
      ],
      "epoch" : 943776000,
      "url" : "https://www.perl.com/pub/1999/11/p5pdigest/THISWEEK-19991128"
   },
   {
      "categories" : "community",
      "description" : "This week on perl5-porters (15-21 November 1999) Notes XSLoader.pm Threads Shared Interpreter threads (the current model) Cloned interpreter threads (upcoming in 5.005_63) chomp() Threading and Regexes Safe::Hole PREPARE Marshalling Modules Local Address in LWP local()izing select() and chdir() Wandering Environment...",
      "tags" : [],
      "title" : "This Week on p5p 1999/11/21",
      "url_path" : "/pub/1999/11/p5pdigest/THISWEEK-19991121",
      "authors" : [
         "mark-jason-dominus"
      ],
      "epoch" : 943171200,
      "url" : "https://www.perl.com/pub/1999/11/p5pdigest/THISWEEK-19991121"
   },
   {
      "url" : "https://www.perl.com/pub/1999/11/cozens.htm",
      "epoch" : 942739200,
      "authors" : [
         "nathan-torkington"
      ],
      "url_path" : "/pub/1999/11/cozens.htm",
      "title" : "Perl as a First Language",
      "tags" : [],
      "categories" : "community",
      "description" : null
   },
   {
      "url" : "https://www.perl.com/pub/1999/11/p5pdigest/THISWEEK-19991114",
      "epoch" : 942566400,
      "url_path" : "/pub/1999/11/p5pdigest/THISWEEK-19991114",
      "authors" : [
         "mark-jason-dominus"
      ],
      "title" : "This Week on p5p 1999/11/14",
      "tags" : [],
      "categories" : "community",
      "description" : " Notes Lexical variables and eval More About Line Disciplines link on WinNT Regex Optimization Threads on Solaris Regex Engine Reentrancy Big Files Continue Regexp Objects again Unicode Support on EBCDIC Machines Marshalling Modules Got Perl? localtime() has Another Bug!..."
   },
   {
      "categories" : "community",
      "description" : " Notes glob case-sensitivity D'oh::Year and Y2K warnings Threading and Regexes Change to xsubpp utf8 Needs a New Pumpking STOP blocks map and grep in void context Data::Dumper and Regexp objects sort improvements IPv6 and Socket.pm New quotation characters system...",
      "tags" : [],
      "title" : "This Week on p5p 1999/11/07",
      "url_path" : "/pub/1999/11/p5pdigest/THISWEEK-19991107",
      "authors" : [
         "mark-jason-dominus"
      ],
      "epoch" : 941961600,
      "url" : "https://www.perl.com/pub/1999/11/p5pdigest/THISWEEK-19991107"
   },
   {
      "categories" : "community",
      "description" : " Notes glob case-sensitivity Perl under UNICOS New perlthread man page Threading and explicit unlocking Threading and Regexes pack t Template Happy Birthday CPAN! Local Address in LWP Return of ref prototype $^O sort improvements Shell.pm enhancements. Time Zone Output...",
      "title" : "This Week on p5p 1999/10/31",
      "tags" : [],
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/1999/10/p5pdigest/THISWEEK-19991031",
      "epoch" : 941616000,
      "url" : "https://www.perl.com/pub/1999/10/p5pdigest/THISWEEK-19991031"
   },
   {
      "tags" : [],
      "title" : "A Short Guide to DBI",
      "categories" : "data",
      "description" : "Short guide to DBI (The Perl Database Interface Module) General information about relational databases Relational databases started to get to be a big deal in the 1970's, andthey're still a big deal today, which is a little peculiar, because they're...",
      "url" : "https://www.perl.com/pub/1999/10/DBI",
      "epoch" : 940579200,
      "authors" : [
         "mark-jason-dominus"
      ],
      "url_path" : "/pub/1999/10/DBI"
   },
   {
      "description" : "Happy Birthday Perl 5 The first full release of Perl 5 was exactly five years ago, on 17 October, 1994. (Not 18 October as perlhist says.) Happy birthday, Perl, and congratulations to Larry and the cast of thousands! Oh, and...",
      "categories" : "community",
      "title" : "Happy Birthday Perl 5!",
      "tags" : [],
      "epoch" : 940233600,
      "url_path" : "/pub/1999/10/happybday",
      "authors" : [
         "mark-jason-dominus"
      ],
      "url" : "https://www.perl.com/pub/1999/10/happybday"
   },
   {
      "url_path" : "/pub/1999/10/p5pdigest/THISWEEK-19991024",
      "authors" : [
         "mark-jason-dominus"
      ],
      "epoch" : 940147200,
      "url" : "https://www.perl.com/pub/1999/10/p5pdigest/THISWEEK-19991024",
      "description" : "(18-24 October 1999) -> $^O STOP blocks and the broken compiler Blank lines in POD PERL_HEADER environment variable Out of date modules in Perl distribution Enhanced UNIVERSAL::isa sort improvements glob case-sensitivity reftype function New perlthread man page Win32 and fork()...",
      "categories" : "community",
      "tags" : [],
      "title" : "This Week on p5p 1999/10/24"
   },
   {
      "url" : "https://www.perl.com/pub/1999/10/p5pdigest/THISWEEK-19991017",
      "url_path" : "/pub/1999/10/p5pdigest/THISWEEK-19991017",
      "authors" : [
         "mark-jason-dominus"
      ],
      "epoch" : 940147200,
      "tags" : [],
      "title" : "This Week on p5p 1999/10/17",
      "description" : "(11-17 October 1999) -> Introduction New Development Release 5.005_62 Unicode Character Classes Module Bundling and the proposed import pragma use fields allows overlapping member names PREPARE functions and my Class $foo declarations goto Out of Conditional Bug Regex Range Bug...",
      "categories" : "community"
   },
   {
      "url_path" : "/pub/1999/10/perltk/index",
      "authors" : [
         "brett-berry",
         "lee-minniear"
      ],
      "epoch" : 939974400,
      "url" : "https://www.perl.com/pub/1999/10/perltk/index",
      "categories" : "graphics",
      "description" : " Table of Contents Â Essential Perl/Tk Programming Â A Graphic Authorizing Example Â TK Overview Â A Pay Calculator Example Â Creating A Window Â Adding A Menubar Â Adding Choices To A Menubar Â More Menubar Choices Â...",
      "tags" : [
         "perl",
         "perl-tk"
      ],
      "title" : "Perl/Tk Tutorial"
   },
   {
      "url" : "https://www.perl.com/pub/1999/09/trips/tripreport",
      "url_path" : "/pub/1999/09/trips/tripreport",
      "authors" : [
         "ian-clark"
      ],
      "epoch" : 938505600,
      "title" : "Open Source Highlights",
      "tags" : [
         "open-source-conference",
         "python",
         "trip-report"
      ],
      "description" : " Overview August 21 - 24, 1999 My main reason for attending the Open Source Conference is to observe Open Source developments and to gather business intelligence for Chevron. I learned Python. I also concentrated on understanding the business case...",
      "categories" : "community"
   },
   {
      "description" : " Introduction One of the more interesting talks at the O'Reilly 1999 Open Source Convention was by Chip Salzenberg, one of the core developers of Perl. He described his work on Topaz, a new effort to completely re-write the internals...",
      "categories" : "community",
      "title" : "Topaz: Perl for the 22nd Century",
      "tags" : [
         "c",
         "internals",
         "systems-programming-languages"
      ],
      "authors" : [
         "chip-salzenberg"
      ],
      "url_path" : "/pub/1999/09/topaz",
      "epoch" : 938505600,
      "url" : "https://www.perl.com/pub/1999/09/topaz"
   },
   {
      "url_path" : "/pub/1999/09/refererents",
      "authors" : [
         "damian-conway"
      ],
      "epoch" : 937468800,
      "url" : "https://www.perl.com/pub/1999/09/refererents",
      "categories" : "development",
      "description" : " Introduction Damian Conway is the author of the newly released Object Oriented Perl, the first of a new series of Perl books from Manning. Object-oriented programming in Perl is easy. Forget the heavy theory and the sesquipedalian jargon: classes...",
      "tags" : [],
      "title" : "Bless My Referents"
   },
   {
      "epoch" : 937468800,
      "url_path" : "/pub/1999/09/whitecamel/index",
      "authors" : [
         "brent-michalski"
      ],
      "url" : "https://www.perl.com/pub/1999/09/whitecamel/index",
      "categories" : "community",
      "description" : " The Perl Conference brought us the first \"White Camel\" awards. The White Camel Awards were created to honor individuals who devote remarkable creativity, energy, and time to the non-technical work that supports Perl's active and loyal user community. The...",
      "tags" : [],
      "title" : "White Camel Awards"
   },
   {
      "tags" : [
         "larry-wall",
         "state-of-the-onion"
      ],
      "title" : "3rd State of the Onion",
      "description" : " This talk was delivered by Larry Wall on August 23, 1999 at the Perl Conference 3.0 in Monterey, CA. (Note: most of the pictures this year were images of molecules that I animated using a program called RasMol, along...",
      "categories" : "community",
      "url" : "https://www.perl.com/pub/1999/08/onion/talk1",
      "epoch" : 936000000,
      "url_path" : "/pub/1999/08/onion/talk1",
      "authors" : [
         "larry-wall"
      ]
   },
   {
      "title" : "A New Edition of www.perl.com",
      "tags" : [
         "edition",
         "new",
         "redesign"
      ],
      "categories" : "community",
      "description" : " I'd like to welcome you to this new edition of www.perl.com and tell you about some of the changes we made to the site. Easier Navigation We simplified the navigation menu so that it's easy to find the site's...",
      "url" : "https://www.perl.com/pub/1999/07/newperl",
      "authors" : [
         "dale-dougherty"
      ],
      "url_path" : "/pub/1999/07/newperl",
      "epoch" : 932025600
   },
   {
      "epoch" : 930729600,
      "url_path" : "/pub/1999/06/yapc",
      "authors" : [
         "brent-michalski"
      ],
      "url" : "https://www.perl.com/pub/1999/06/yapc",
      "description" : " Yet Another Perl Conference, also known as YAPC, wasn't just another conference, it was incredible. Kevin Lenzo YAPC was thought up and coordinated by Kevin Lenzo of Carnegie Mellon University. The idea was to have a &quot;grass roots&quot; Perl...",
      "categories" : "community",
      "tags" : [],
      "title" : "Dispatch from YAPC"
   },
   {
      "title" : "White Camel Awards to be Presented at O'Reilly's Perl Conference 3.0",
      "tags" : [
         "awards",
         "o-reilly",
         "perl",
         "perl-conference",
         "perl-mongers",
         "white-camel"
      ],
      "categories" : "community",
      "description" : " Coming soon - our nomination form for the first White Camel Awards. Let us know who you think has made outstanding contributions to Perl Advocacy, Perl User Groups, and the Perl Community. The White Camel awards will be presented...",
      "url" : "https://www.perl.com/pub/1999/06/whitecamel",
      "url_path" : "/pub/1999/06/whitecamel",
      "authors" : [
         "perldotcom"
      ],
      "epoch" : 930556800
   },
   {
      "url" : "https://www.perl.com/pub/1999/06/activestate",
      "epoch" : 928915200,
      "authors" : [
         "dale-dougherty"
      ],
      "url_path" : "/pub/1999/06/activestate",
      "tags" : [
         "activestate",
         "microsoft",
         "windows"
      ],
      "title" : "Microsoft to Fund Perl Development",
      "description" : " If the good news is that the world's largest software company has recognized the value of Perl and they are willing to fund new Perl development, then you know the bad news. Microsoft has entered into a three-year agreement...",
      "categories" : "community"
   },
   {
      "epoch" : 920966400,
      "url_path" : "/pub/1999/03/pm",
      "authors" : [
         "larry-wall"
      ],
      "url" : "https://www.perl.com/pub/1999/03/pm",
      "description" : "Perl, the first postmodern computer language The following is the text of Larry Wall's talk at Linux World on Wednesday, March 3.&nbsp;&nbsp; He explains why Perl is a fitting language for the postmodern era.&nbsp; As a member of the audience...",
      "categories" : "community",
      "tags" : [
         "linux",
         "postmodern",
         "theory"
      ],
      "title" : "Perl, the first postmodern computer language"
   },
   {
      "epoch" : 916732800,
      "authors" : [
         "kim-ryan"
      ],
      "url_path" : "/pub/1999/01/kr-perl",
      "url" : "https://www.perl.com/pub/1999/01/kr-perl",
      "description" : null,
      "categories" : "development",
      "tags" : [],
      "title" : "Success in Migrating from C to Perl"
   },
   {
      "description" : null,
      "categories" : "community",
      "tags" : [],
      "title" : "What the Heck is a Perl Monger?!",
      "url_path" : "/pub/1999/01/foy",
      "authors" : [
         "brent-michalski"
      ],
      "epoch" : 916214400,
      "url" : "https://www.perl.com/pub/1999/01/foy"
   },
   {
      "categories" : "security",
      "description" : " Lawyers, Liars, and Perl As the clock draws us relentlessly closer toward 2000, the final year of the second millennium, doom sayers everywhere are prophesying unprecedented computer failure in every conceivable sector. Known popularly as the Year 2000 Problem,...",
      "tags" : [
         "y2k"
      ],
      "title" : "Y2K Compliance",
      "epoch" : 915350400,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/pub/1999/01/y2k",
      "url" : "https://www.perl.com/pub/1999/01/y2k"
   },
   {
      "url" : "https://www.perl.com/pub/1998/11/xml",
      "authors" : [
         "perldotcom"
      ],
      "url_path" : "/pub/1998/11/xml",
      "epoch" : 911980800,
      "tags" : [],
      "title" : "XML::Parser Module Enables XML Development in Perl",
      "categories" : "data",
      "description" : null
   },
   {
      "tags" : [
         "task-management-system",
         "win32"
      ],
      "title" : "A Zero Cost Solution",
      "categories" : "windows",
      "description" : " Creating a Task Tracking System For $0 in Licensing Fees, Hardware, and Software Costs CONEXANT (formerly Rockwell Semiconductor Systems) Supply Chain Management Planning and Execution Systems needed a way to keep track of in-house tasks. When associate departments requested...",
      "url" : "https://www.perl.com/pub/1998/11/article",
      "epoch" : 911289600,
      "url_path" : "/pub/1998/11/article",
      "authors" : [
         "sam-schulte"
      ]
   },
   {
      "title" : "Perl Rescues a Major Corporation",
      "tags" : [],
      "description" : null,
      "categories" : "community",
      "url" : "https://www.perl.com/pub/1998/10/brent",
      "url_path" : "/pub/1998/10/brent",
      "authors" : [
         "brent-michalski"
      ],
      "epoch" : 908956800
   },
   {
      "categories" : "community",
      "description" : null,
      "title" : "A Photographic Journal",
      "tags" : [],
      "url_path" : "/pub/1998/08/show/perl-photos",
      "authors" : [
         "joseph-f-ryan"
      ],
      "epoch" : 904204800,
      "url" : "https://www.perl.com/pub/1998/08/show/perl-photos"
   },
   {
      "url_path" : "/pub/1998/08/show/udell",
      "authors" : [
         "jon-udell"
      ],
      "epoch" : 904118400,
      "url" : "https://www.perl.com/pub/1998/08/show/udell",
      "description" : null,
      "categories" : "community",
      "title" : "Perl's Prospects Are Brighter Than Ever",
      "tags" : []
   },
   {
      "url" : "https://www.perl.com/pub/1998/08/show/onion",
      "epoch" : 904032000,
      "url_path" : "/pub/1998/08/show/onion",
      "authors" : [
         "larry-wall"
      ],
      "title" : "2nd State of the Onion",
      "tags" : [],
      "description" : null,
      "categories" : "community"
   },
   {
      "categories" : "community",
      "description" : null,
      "tags" : [],
      "title" : "The Final Day at The Perl Conference",
      "epoch" : 903686400,
      "url_path" : "/pub/1998/08/show/day4",
      "authors" : [
         "brent-michalski"
      ],
      "url" : "https://www.perl.com/pub/1998/08/show/day4"
   },
   {
      "title" : "Day 3: Core Perl Developers at Work and Play",
      "tags" : [],
      "description" : null,
      "categories" : "community",
      "url" : "https://www.perl.com/pub/1998/08/show/day3",
      "authors" : [
         "brent-michalski"
      ],
      "url_path" : "/pub/1998/08/show/day3",
      "epoch" : 903600000
   },
   {
      "tags" : [],
      "title" : "Day 2: Perl Mongers at The Conference",
      "description" : null,
      "categories" : "community",
      "url" : "https://www.perl.com/pub/1998/08/show/day2",
      "epoch" : 903513600,
      "url_path" : "/pub/1998/08/show/day2",
      "authors" : [
         "brent-michalski"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/1998/08/show/day1",
      "url_path" : "/pub/1998/08/show/day1",
      "authors" : [
         "brent-michalski"
      ],
      "epoch" : 903427200,
      "title" : "Day 1 Highlights: Lincoln's Cool Tricks and Regexp",
      "tags" : [],
      "description" : null,
      "categories" : "community"
   },
   {
      "authors" : [
         "brent-michalski"
      ],
      "url_path" : "/pub/1998/07/review",
      "epoch" : 901094400,
      "url" : "https://www.perl.com/pub/1998/07/review",
      "categories" : "tooling",
      "description" : " Overview: Perl Builder, by Solutionsoft, is the first integrated development environment (IDE) for Perl. It allows you to develop and test Perl applications in a Windows 95/98/NT environment. Test Equipment: I tested Perl Builder on a machine with a...",
      "title" : "Perl Builder IDE Debuts",
      "tags" : [
         "ide",
         "integrated-development-environment",
         "perl",
         "products",
         "reviews",
         "windows-95-98-nt"
      ]
   },
   {
      "url" : "https://www.perl.com/pub/1998/07/rwperl",
      "authors" : [
         "brent-michalski"
      ],
      "url_path" : "/pub/1998/07/rwperl",
      "epoch" : 901094400,
      "tags" : [
         "air-force",
         "databases",
         "languages",
         "perl",
         "programming"
      ],
      "title" : "How Perl Creates Orders For The Air Force",
      "categories" : "community",
      "description" : " This article is the first in a series that will provide examples of Perl solving real-world problems, particularly in an organization. If you have your own real-life story to tell, send it to Perl.com Editor. How many times have..."
   },
   {
      "description" : " New MacPerl CD-ROM Available Rich Morin (rdm@cfcl.com) of Prime Time Freeware has produced the MacPerl CD-ROM, a distribution of the Perl for the Macintosh along with other Mac tools and documentation. I asked him about the MacPerl community and...",
      "categories" : "mac",
      "tags" : [
         "mac",
         "macperl",
         "matthias-ulrich-neeracher",
         "perl",
         "resources",
         "rich-morin"
      ],
      "title" : "MacPerl Gains Ground",
      "url_path" : "/pub/1998/06/macperl",
      "authors" : [
         "perldotcom"
      ],
      "epoch" : 896860800,
      "url" : "https://www.perl.com/pub/1998/06/macperl"
   },
   {
      "categories" : "data",
      "description" : " How to Make Perl The Language of Choice for XML Perl has been the language of choice for anyone doing serious text processing. Now efforts are underway to make Perl the language of choice for those doing \"structured\" text...",
      "tags" : [
         "languages",
         "perl",
         "xml",
         "xml"
      ],
      "title" : "Perl Support for XML Developing",
      "epoch" : 889516800,
      "url_path" : "/pub/1998/06/perl-xml",
      "authors" : [
         "dale-dougherty"
      ],
      "url" : "https://www.perl.com/pub/1998/06/perl-xml"
   },
   {
      "epoch" : 883641600,
      "url_path" : "/doc/FMTEYEWTK/style/slide38",
      "authors" : [
         "tom-christiansen"
      ],
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide38",
      "categories" : "programming-languages",
      "description" : null,
      "tags" : [],
      "title" : "Perl Style: Switch by Using do{} Creatively"
   },
   {
      "title" : "Perl Style: Functions as Data",
      "tags" : [],
      "categories" : "programming-languages",
      "description" : null,
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide35",
      "url_path" : "/doc/FMTEYEWTK/style/slide35",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 883641600
   },
   {
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide1",
      "epoch" : 883641600,
      "url_path" : "/doc/FMTEYEWTK/style/slide1",
      "authors" : [
         "tom-christiansen"
      ],
      "title" : "Perl Style: Everyone Has an Opinion",
      "tags" : [],
      "categories" : "programming-languages",
      "description" : null
   },
   {
      "title" : "Perl Style: Reduce Complexity (solution)",
      "tags" : [],
      "description" : null,
      "categories" : "programming-languages",
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide29",
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide29",
      "epoch" : 883641600
   },
   {
      "description" : null,
      "categories" : "programming-languages",
      "title" : "Perl Style: Negative Array Subscripts",
      "tags" : [],
      "url_path" : "/doc/FMTEYEWTK/style/slide16",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 883641600,
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide16"
   },
   {
      "url_path" : "/doc/FMTEYEWTK/style/slide7",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 883641600,
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide7",
      "description" : null,
      "categories" : "programming-languages",
      "tags" : [],
      "title" : "Perl Style: On the Naming of Names (Content)"
   },
   {
      "epoch" : 883641600,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide18",
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide18",
      "description" : null,
      "categories" : "programming-languages",
      "title" : "Perl Style: Use Hashes for Sets",
      "tags" : []
   },
   {
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide10",
      "epoch" : 883641600,
      "url_path" : "/doc/FMTEYEWTK/style/slide10",
      "authors" : [
         "tom-christiansen"
      ],
      "title" : "Perl Style: Embrace && and || for Control and Values",
      "tags" : [],
      "description" : null,
      "categories" : "programming-languages"
   },
   {
      "tags" : [],
      "title" : "Perl Style: Use Hashes for the First Time",
      "description" : null,
      "categories" : "programming-languages",
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide19",
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide19",
      "epoch" : 883641600
   },
   {
      "tags" : [],
      "title" : "Perl Style: Length of Variable Names",
      "description" : null,
      "categories" : "programming-languages",
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide8",
      "epoch" : 883641600,
      "url_path" : "/doc/FMTEYEWTK/style/slide8",
      "authors" : [
         "tom-christiansen"
      ]
   },
   {
      "epoch" : 883641600,
      "url_path" : "/doc/FMTEYEWTK/style/slide24",
      "authors" : [
         "tom-christiansen"
      ],
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide24",
      "description" : null,
      "categories" : "programming-languages",
      "title" : "Perl Style: Avoid Symbolic References",
      "tags" : []
   },
   {
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide25",
      "url_path" : "/doc/FMTEYEWTK/style/slide25",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 883641600,
      "tags" : [],
      "title" : "Perl Style: Using A Hash Instead of $$name",
      "categories" : "programming-languages",
      "description" : null
   },
   {
      "epoch" : 883641600,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide31",
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide31",
      "categories" : "programming-languages",
      "description" : null,
      "title" : "Perl Style: Break Complex Tasks Up",
      "tags" : []
   },
   {
      "epoch" : 883641600,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide41",
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide41",
      "description" : null,
      "categories" : "programming-languages",
      "tags" : [],
      "title" : "Perl Style: The Care and Feeding of Modules"
   },
   {
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide30",
      "epoch" : 883641600,
      "url_path" : "/doc/FMTEYEWTK/style/slide30",
      "authors" : [
         "tom-christiansen"
      ],
      "tags" : [],
      "title" : "Perl Style: Loop Hoisting",
      "categories" : "programming-languages",
      "description" : null
   },
   {
      "epoch" : 883641600,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide23",
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide23",
      "categories" : "programming-languages",
      "description" : null,
      "title" : "Perl Style: Avoid Byte Processing",
      "tags" : []
   },
   {
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide28",
      "epoch" : 883641600,
      "url_path" : "/doc/FMTEYEWTK/style/slide28",
      "authors" : [
         "tom-christiansen"
      ],
      "tags" : [],
      "title" : "Perl Style: Reduce Complexity",
      "description" : null,
      "categories" : "programming-languages"
   },
   {
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide13",
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide13",
      "epoch" : 883641600,
      "title" : "Perl Style: Never define \"TRUE\" and \"FALSE\"",
      "tags" : [],
      "description" : null,
      "categories" : "programming-languages"
   },
   {
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide2",
      "url_path" : "/doc/FMTEYEWTK/style/slide2",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 883641600,
      "title" : "Perl Style: Program Perl, Not C/BASIC/Java/Pascal/etc",
      "tags" : [],
      "categories" : "programming-languages",
      "description" : null
   },
   {
      "tags" : [],
      "title" : "Perl Style: From Perlstyle (part 1)",
      "categories" : "programming-languages",
      "description" : null,
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide43",
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide43",
      "epoch" : 883641600
   },
   {
      "tags" : [],
      "title" : "Perl Style: Elegance",
      "categories" : "programming-languages",
      "description" : null,
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide3",
      "epoch" : 883641600,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide3"
   },
   {
      "tags" : [],
      "title" : "Perl Style: Break Programs into Separate Processes",
      "description" : null,
      "categories" : "programming-languages",
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide32",
      "url_path" : "/doc/FMTEYEWTK/style/slide32",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 883641600
   },
   {
      "tags" : [],
      "title" : "Perl Style: From Perlstyle (part 2)",
      "categories" : "programming-languages",
      "description" : null,
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide44",
      "epoch" : 883641600,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide44"
   },
   {
      "categories" : "programming-languages",
      "description" : null,
      "tags" : [],
      "title" : "Perl Style: Embrace Pattern Matching",
      "epoch" : 883641600,
      "url_path" : "/doc/FMTEYEWTK/style/slide14",
      "authors" : [
         "tom-christiansen"
      ],
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide14"
   },
   {
      "title" : "Perl Style: Avoid Testing eof",
      "tags" : [],
      "description" : null,
      "categories" : "programming-languages",
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide26",
      "url_path" : "/doc/FMTEYEWTK/style/slide26",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 883641600
   },
   {
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide6",
      "epoch" : 883641600,
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide6",
      "description" : null,
      "categories" : "programming-languages",
      "tags" : [],
      "title" : "Perl Style: On the Naming of Names (Form)"
   },
   {
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide33",
      "epoch" : 883641600,
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide33",
      "description" : null,
      "categories" : "programming-languages",
      "title" : "Perl Style: Data-Oriented Programming",
      "tags" : []
   },
   {
      "epoch" : 883641600,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide40",
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide40",
      "categories" : "programming-languages",
      "description" : null,
      "title" : "Perl Style: Switch Using for and do{} Even More Creatively",
      "tags" : []
   },
   {
      "epoch" : 883641600,
      "url_path" : "/doc/FMTEYEWTK/style/slide37",
      "authors" : [
         "tom-christiansen"
      ],
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide37",
      "categories" : "programming-languages",
      "description" : null,
      "tags" : [],
      "title" : "Perl Style: Learn to Switch with for"
   },
   {
      "tags" : [],
      "title" : "Perl Style: Patches",
      "description" : null,
      "categories" : "programming-languages",
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide42",
      "epoch" : 883641600,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide42"
   },
   {
      "title" : "Perl Style: Changing <I>en passant</I>",
      "tags" : [],
      "categories" : "programming-languages",
      "description" : null,
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide15",
      "epoch" : 883641600,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide15"
   },
   {
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide5",
      "epoch" : 883641600,
      "url_path" : "/doc/FMTEYEWTK/style/slide5",
      "authors" : [
         "tom-christiansen"
      ],
      "title" : "Perl Style: The Art of Commenting Code",
      "tags" : [],
      "description" : null,
      "categories" : "programming-languages"
   },
   {
      "description" : null,
      "categories" : "programming-languages",
      "title" : "Perl Style: Use foreach() Loops",
      "tags" : [],
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide22",
      "epoch" : 883641600,
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide22"
   },
   {
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide4",
      "url_path" : "/doc/FMTEYEWTK/style/slide4",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 883641600,
      "title" : "Perl Style: Defensive Programming",
      "tags" : [],
      "description" : null,
      "categories" : "programming-languages"
   },
   {
      "categories" : "programming-languages",
      "description" : null,
      "tags" : [],
      "title" : "Perl Style: Don't Overdo `?:'",
      "url_path" : "/doc/FMTEYEWTK/style/slide12",
      "authors" : [
         "tom-christiansen"
      ],
      "epoch" : 883641600,
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide12"
   },
   {
      "categories" : "programming-languages",
      "description" : null,
      "tags" : [],
      "title" : "Perl Style: Parallelism",
      "epoch" : 883641600,
      "url_path" : "/doc/FMTEYEWTK/style/slide9",
      "authors" : [
         "tom-christiansen"
      ],
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide9"
   },
   {
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide36",
      "epoch" : 883641600,
      "url_path" : "/doc/FMTEYEWTK/style/slide36",
      "authors" : [
         "tom-christiansen"
      ],
      "tags" : [],
      "title" : "Perl Style: Closures",
      "description" : null,
      "categories" : "programming-languages"
   },
   {
      "title" : "Perl Style: Configuration Files",
      "tags" : [],
      "categories" : "programming-languages",
      "description" : null,
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide34",
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide34",
      "epoch" : 883641600
   },
   {
      "epoch" : 883641600,
      "url_path" : "/doc/FMTEYEWTK/style/slide27",
      "authors" : [
         "tom-christiansen"
      ],
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide27",
      "description" : null,
      "categories" : "programming-languages",
      "title" : "Perl Style: Avoid Gratuitous Backslashes",
      "tags" : []
   },
   {
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide17",
      "epoch" : 883641600,
      "url_path" : "/doc/FMTEYEWTK/style/slide17",
      "authors" : [
         "tom-christiansen"
      ],
      "title" : "Perl Style: Embrace Hashes",
      "tags" : [],
      "description" : null,
      "categories" : "programming-languages"
   },
   {
      "epoch" : 883641600,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide21",
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide21",
      "description" : null,
      "categories" : "programming-languages",
      "tags" : [],
      "title" : "Perl Style: Use $_ in Short Code"
   },
   {
      "categories" : "programming-languages",
      "description" : null,
      "title" : "Perl Style: Use Hashes of Records, not Parallel Arrays",
      "tags" : [],
      "epoch" : 883641600,
      "url_path" : "/doc/FMTEYEWTK/style/slide20",
      "authors" : [
         "tom-christiansen"
      ],
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide20"
   },
   {
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide11",
      "epoch" : 883641600,
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide11",
      "description" : null,
      "categories" : "programming-languages",
      "title" : "Perl Style: Learn Precedence",
      "tags" : []
   },
   {
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide39",
      "epoch" : 883641600,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide39",
      "title" : "Perl Style: Switch with for via && and ||",
      "tags" : [],
      "categories" : "programming-languages",
      "description" : null
   },
   {
      "epoch" : 883555200,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/style/slide-index",
      "url" : "https://www.perl.com/doc/FMTEYEWTK/style/slide-index",
      "categories" : "programming-languages",
      "description" : null,
      "title" : "Perl Style",
      "tags" : []
   },
   {
      "url" : "https://www.perl.com/pub/1997/wall/keynote",
      "url_path" : "/pub/1997/wall/keynote",
      "authors" : [
         "larry-wall"
      ],
      "epoch" : 872064000,
      "tags" : [],
      "title" : "The Culture of Perl",
      "categories" : "community",
      "description" : null
   },
   {
      "epoch" : 820483200,
      "authors" : [
         "tom-christiansen"
      ],
      "url_path" : "/doc/FMTEYEWTK/versus/perl",
      "url" : "https://www.perl.com/doc/FMTEYEWTK/versus/perl",
      "categories" : "programming-languages",
      "description" : "advocatus diaboli",
      "title" : "The Seven Deadly Sins of Perl",
      "tags" : [
         "perl-4"
      ]
   }
]
