Top SitesPerl Hacks - Just another Perl Hacker's blog

Machine Readiness

Stored receipt and evidence

Overall

20

Readable

65

Callable

0

Commerce

0

Payment

0

Machine Access

Inspect the site's MCP endpoint

Open MCP explorer

DialtoneApp can scan the stored discovery files for this domain, try the MCP initialize handshake, and show the raw protocol transcript.

Purchase boundary

read only

Control boundary

unknown

Payment rails

None

Payment providers

None

Payment methods

None

Payment protocols

None

Payment assets

None

Payment networks

None

Capabilities

None

Verified payment surface

No

Crypto only

No

Readable docs

robots, llms

Products

0

Variants

0

Priced variants

0

Currencies

0

Offers

0

Priced offers

0

Priced actions

0

Samples

Offer samples

No stored offer samples.

Samples

Action samples

No stored action samples.

Samples

Product samples

No stored product samples.

Document

llms.txt

Open llms.txt
Generated by All in One SEO v4.9.5.1, this is an llms.txt file, used by LLMs to index the site.

# Perl Hacks

Just another Perl Hacker's blog

## Sitemaps

- [XML Sitemap](https://perlhacks.com/sitemap.xml): Contains all public & indexable URLs for this website.

## Posts

- [Summarising a Month of Git Activity with Perl (and a Little Help from AI)](https://perlhacks.com/2026/04/summarising-a-month-of-git-activity-with-perl-and-a-little-help-from-ai/) - Every month, I write a newsletter which (among other things) discusses some of the technical projects I’ve been working on. It’s a useful exercise — partly as a record for other people, but mostly as a way for me to remember what I’ve actually done. Because, as I’m sure you’ve noticed, it’s very easy to
- [Writing a TOON Module for Perl](https://perlhacks.com/2026/03/writing-a-toon-module-for-perl/) - Every so often, a new data serialisation format appears and people get excited about it. Recently, one of those formats is **TOON** — Token-Oriented Object Notation. As the name suggests, it’s another way of representing the same kinds of data structures that you’d normally store in JSON or YAML: hashes, arrays, strings, numbers, booleans and
- [Still on the [b]leading edge](https://perlhacks.com/2026/03/still-on-the-bleading-edge/) - About eighteen months ago, I wrote a post called On the Bleading Edge about my decision to start using Perl’s new class feature in real code. I knew I was getting ahead of parts of the ecosystem. I knew there would be occasional pain. I decided the benefits were worth it. I still think that’s
- [Treating GitHub Copilot as a Contributor](https://perlhacks.com/2026/02/treating-github-copilot-as-a-contributor/) - For some time, we’ve talked about GitHub Copilot as if it were a clever autocomplete engine. It isn’t. Or rather, that's not all it is. The interesting thing — the thing that genuinely changes how you work — is that you can assign GitHub issues to Copilot. And it behaves like a contributor. Over the
- [Perl School](https://perlhacks.com/2012/08/perl-school/) - On Saturday, I ran the first Perl School session. Twenty-five programmers with little or no previous experience of Perl came along to Google Campus in London and listened to me talking about Perl. Over six hours I tried to give a good introduction to Modern Perl. In the morning I talked about the core Perl
- [App::HTTPThis: the tiny web server I keep reaching for](https://perlhacks.com/2026/01/apphttpthis-the-tiny-web-server-i-keep-reaching-for/) - Whenever I’m building a static website, I almost never start by reaching for Apache, nginx, Docker, or anything that feels like “proper infrastructure”. Nine times out of ten I just want a directory served over HTTP so I can click around, test routes, check assets, and see what happens in a real browser. For that
- [Behind the scenes at Perl School Publishing](https://perlhacks.com/2025/12/behind-the-scenes-at-perl-school-publishing/) - We’ve just published a new Perl School book: Design Patterns in Modern Perl by Mohammad Sajid Anwar. It’s been a while since we last released a new title, and in the meantime, the world of eBooks has moved on – Amazon don’t use .mobi any more, tools have changed, and my old “it mostly works
- [Dotcom Survivor Syndrome – How Perl’s Early Success Created the Seeds of Its Downfall](https://perlhacks.com/2025/11/dotcom-survivor-syndrome-how-perls-early-success-created-the-seeds-of-its-downfall/) - If you were building web applications during the first dot-com boom, chances are you wrote Perl. And if you're now a CTO, tech lead, or senior architect, you may instinctively steer teams away from it—even if you can’t quite explain why. This reflexive aversion isn’t just a preference. It’s what I call Dotcom Survivor Syndrome:
- [Elderly Camels in the Cloud](https://perlhacks.com/2025/11/elderly-camels-in-the-cloud/) - In last week's post I showed how to run a modern Dancer2 app on Google Cloud Run. That’s lovely if your codebase already speaks PSGI and lives in a nice, testable, framework-shaped box. But that’s not where a lot of Perl lives. Plenty of useful Perl on the internet is still stuck in old-school CGI
- [Dancing in the Clouds: Moving Dancer2 Apps from a VPS to Cloud Run](https://perlhacks.com/2025/11/dancing-in-the-clouds-moving-dancer2-apps-from-a-vps-to-cloud-run/) - For years, most of my Perl web apps lived happily enough on a VPS. I had full control of the box, I could install whatever I liked, and I knew where everything lived. In fact, over the last eighteen months or so, I wrote a series of blog posts explaining how I developed a system
- [Easy SEO for lazy programmers](https://perlhacks.com/2025/09/easy-seo-for-lazy-programmers/) - A few of my recent projects—like Cooking Vinyl Compilations and ReadABooker—aim to earn a little money via affiliate links. That only works if people actually find the pages, share them, and get decent previews in social apps. In other words: the boring, fragile glue of SEO and social meta tags matters. As I lined up
- [Stop using your system Perl](https://perlhacks.com/2025/06/stop-using-your-system-perl/) - Recently, Gabor ran a poll in a Perl Facebook community asking which version of Perl people used in their production systems. The results were eye-opening—and not in a good way. A surprisingly large number of developers replied with something along the lines of “whatever version is included with my OS.” If that’s you, this post
- [A Slice of Perl](https://perlhacks.com/2025/06/a-slice-of-perl/) - Earlier this week, I read a post from someone who failed a job interview because they used a hash slice in some sample code and the interviewer didn’t believe it would work. That’s not just wrong — it’s a teachable moment. Perl has several kinds of slices, and they’re all powerful tools for writing expressive,
- [Deploying Dancer Apps - The Next Generation](https://perlhacks.com/2025/05/deploying-dancer-apps-the-next-generation/) - Last summer, I wrote a couple of posts about my lightweight, roll-your-own approach to deploying PSGI (Dancer) web apps: Deploying Dancer Apps Deploying Dancer Apps: Addendum In those posts, I described how I avoided heavyweight deployment tools by writing a small, custom Perl script (app_service) to start and manage them. It was minimal, transparent, and easy
- [Generating Content with ChatGPT](https://perlhacks.com/2025/06/generating-content-with-chatgpt/) - Back in January, I wrote a blog post about adding JSON-LD to your web pages to make it easier for Google to understand what they were about. The example I used was my ReadABooker site, which encourages people to read more Booker Prize shortlisted novels (and to do so by buying them using my Amazon
- [Turning AI into a Developer Superpower: The PERL5LIB Auto-Setter](https://perlhacks.com/2025/05/turning-ai-into-a-developer-superpower-the-perl5lib-auto-setter/) - Like most developers, I have a mental folder labelled “useful little tools I’ll probably never build.” Small utilities, quality-of-life scripts, automations — they’d save time, but not enough to justify the overhead of building them. So they stay stuck in limbo. That changed when I started using AI as a regular part of my development
- [Reformating images with App::BlurFill](https://perlhacks.com/2025/05/reformating-images-with-appblurfill/) - You might know that I publish books about Perl at Perl School. What you might now know is that I also publish more general technical books at Clapham Technical Press. If you scroll down to the bottom of that page, you'll see a list of the books that I've published. You'll also see evidence of
- [Cleaner web feed aggregation with App::FeedDeduplicator](https://perlhacks.com/2025/05/cleaner-web-feed-aggregation-with-appfeeddeduplicator/) - I write blog posts in a number of different places: Davblog has been my general blog for about twenty years Perl Hacks is where I write about Perl My Substack newsletter is mostly tech stuff but can also wander into entrepreneurship and other topics And most of those posts get syndicated to other places: Tech stuff will
- [Finding cool stuff with ChatGPT](https://perlhacks.com/2025/04/finding-cool-stuff-with-chatgpt/) - Last week, I wrote a blog post about how I gave new life to an old domain by building a new website to live on that domain. With help from ChatGPT, it only took a few hours to build the site. While I'll be adding new businesses and events to the site over time, that
- [Proposed Perl Changes (part 2)](https://perlhacks.com/2025/02/proposed-perl-changes-part-2/) - At the end of my last post, we had a structure in place that used GitHub Actions to run a workflow every time a change was committed to the PPC repository. That workflow would rebuild the website and publish it on GitHub Pages. All that was left for us to do was to write the
- [Proposed Perl Changes](https://perlhacks.com/2025/01/proposed-perl-changes/) - Many thanks to Dave Cross for providing an initial implementation of a PPC index page. - Perl Steering Council meeting #177 Maybe I should explain that in a little more detail. There's a lot of detail, so it will take a couple of blog posts. About two weeks ago, I got a message on Slack
- [Adding structured data with Perl](https://perlhacks.com/2025/01/adding-structured-data-with-perl/) - If you have a website, then it's very likely that you would like as many people as possible to see it. One of the best tools for achieving that is to ensure that your site is returned close to the top of as many search results pages as possible. In order to do that, you
- [London Perl Mongers on GitHub Pages](https://perlhacks.com/2025/01/london-perl-mongers-on-github-pages/) - The London Perl Mongers have had a website for a very long time. Since some time in 1998, I think. At first, I hosted a static site for us. Later on, we bought our own server and hosted it at a friendly company around Silicon Roundabout. But for most of the lifetime of the organisation,
- [A link site of your very own](https://perlhacks.com/2024/11/a-link-site-of-your-very-own/) - When I first wrote about my pointless personal side projects a few months ago, I used the software I had written to generate my own link site (like a LinkTree clone) as an example. I'm happy to report that I've continued to work on this software. Recently, it passed another milestone—I released a version to CPAN. It's called App::LinkSite[*]. If
- [Advertising Perl](https://perlhacks.com/2024/11/advertising-perl/) - Last weekend, we had a very successful (and very enjoyable) London Perl Workshop. After a five-year break, it was great to see so many old faces again. But in addition to people who had been regular attendees at recent workshops, two other groups of people were there in large numbers—people who had moved away from
- [London Perl Workshop 2024 - Preview](https://perlhacks.com/2024/10/london-perl-workshop-2024-preview/) - After a break of five years, the London Perl Workshop returns next weekend. It's been twenty years since the first one. This year's event is at a new venue called The Trampery, which is very close to Old Street tube station. If you're a veteran of the early-2000s "Silicon Roundabout" excitement, you'll know the place
- [Dancing with Copilot Workspace](https://perlhacks.com/2024/09/dancing-with-copilot-workspace/) - Over the last few months, I've been dabbling in using AI to generate or improve code. I have a subscription to GitHub Copilot and I'm finding it a really useful tool for increasing my productivity. Copilot comes in several different flavours, and I've been making particular use of a couple of them. Copilot Autocomplete was
- [On the [b]leading edge](https://perlhacks.com/2024/08/on-the-bleading-edge/) - We need programmers who like to play on the bleading edge. By trying out new features, they are able to report on problems that they find - and, in doing so, improve the experience for the many people who follow them. I'm not usually much of a bleading edge programmer. But I've been enjoying Perl's
- [Deploying Dancer Apps (Addendum)](https://perlhacks.com/2024/08/deploying-dancer-apps-addendum/) - Back in May, I wrote a blog post about how I had moved a number of Dancer2 applications to a new server and had, in the process, created a standardised procedure for deploying Dancer2 apps. It's been about six weeks since I did that and I thought it would be useful to give a little
- [Deploying Dancer Apps](https://perlhacks.com/2024/05/deploying-dancer-apps/) - Over the last week or so, as a background task, I've been moving domains from an old server to a newer and rather cheaper server. As part of this work, I've been standardising the way I deploy web apps on the new server and I thought it might be interesting to share the approach I'm
- [Combining calendars](https://perlhacks.com/2024/07/combining-calendars/) - One of the most popular posts I've written in recent months was the one where I talked about all the pointless personal projects I have. The consensus in the many comments I received was that anything you find useful isn't pointless. And I can't really argue with that. But it's nice when one of your
- [Bowing to the inevitable](https://perlhacks.com/2024/06/bowing-to-the-inevitable/) - Data Munging with Perl was published in February 2001. That was over 23 years ago. It's even 10 years since Manning took the book out of print and the rights to the content reverted to me. Over that time, I've been to a lot of Perl conferences and met a lot of people who have
- ["You Must Hate Version Control Systems"](https://perlhacks.com/2012/03/you-must-hate-version-control-systems/) - I've been an independent consultant for a long time now. Over the last seventeen years, I've worked for dozens of different clients. In that time it's been interesting to watch how good practices have slowly permeated the industry. These days, when I start working with a new client there's about a 50% chance that they
- [Collecting talks](https://perlhacks.com/2024/04/collecting-talks/) - I gave my first public talk sometime between the 22nd and 24th September 2000. It was at the first YAPC::Europe which was held in London between those dates. I can't be any more precise because the schedule is no longer online and memory fades. I can, however, tell you that the talk was a disaster.
- [Amazon Links and Buttons](https://perlhacks.com/2024/03/amazon-links-and-buttons/) - I've spent more than a reasonable amount of time thinking about Amazon links over the last three or four years. It started with the Perl School web site. Obviously, I knew that the book page needed a link to Amazon - so people could buy the books if they wanted to - but that's complicated
- [Pointless personal side projects](https://perlhacks.com/2024/03/pointless-personal-side-projects/) - I can't be the only programmer who does this. You're looking for an online service to fill some need in your life. You look at three or four competing products and they all get close but none of them do everything you want. Or maybe they do tick all the boxes but they cost that
- [The present isn't evenly distributed either](https://perlhacks.com/2024/02/the-present-isnt-evenly-distributed-either/) - The future is already here – it’s just not very evenly distributed - William Gibson The quotation above was used by Tim O'Reilly a lot around the time that Web 2.0 got going. Over recent months, I've had a few experiences that have made it clear to me that even the present isn't particularly evenly
- [Yak Shaving with Aphra Behn](https://perlhacks.com/2017/09/yak-shaving-aphra-behn/) - I have a few ideas for static web sites that I want to build. And, currently, the best place to host static web sites is, in my opinion, Github Pages. And if you're hosting a site on Github Pages, everyone knows that the best tool to use is Jekyll. Or is it? I've tried to
- [GitHub Actions for Perl Development](https://perlhacks.com/2024/01/github-actions-for-perl-development/) - You might remember that I've been taking an interest in GitHub Actions for the last year or so (I even wrote a book on the subject). And at the Perl Conference in Toronto last summer I gave a talk called "GitHub Actions for Perl Development" (here are the slides and the video). During that talk,
- [GitHub Organisations](https://perlhacks.com/2023/08/github-organisations/) - I've mentioned before how much I enjoyed Olaf Alders' talk, Whither Perl, at the Perl and Raku Conference in Toronto last month. I think it's well worth spending forty minutes watching it. It triggered a few ideas that I'll be writing about over the coming weeks and, today, I wanted to start by talking briefly
- [The Perl and Raku Conference, Toronto 2023](https://perlhacks.com/2023/07/the-perl-and-raku-conference-toronto-2023/) - It's been over twenty years since I spoke at a conference in North America. That was at OSCON in San Diego. I've actually never spoken at a YAPC, TPC or TPRC in North America. I have the standard European concern about being seen to encourage the USA's bad behaviour by actually visiting it, so when
- [Mission (Almost) Accomplished](https://perlhacks.com/2023/05/mission-almost-accomplished/) - [This post might sound like I'm angry at people making it hard to make progress on some things. That's not the case at all. I realise completely that people have limited time and they get to choose how they spend it. If people are too busy elsewhere or have moved on to other projects then
- [Building Planets with Perlanet and GitHub](https://perlhacks.com/2023/04/building-planets-with-perlanet-and-github/) - 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-two million miles is an utterly insignificant little blue green planet whose ape-descended life forms are so amazingly primitive that they still think digital
- [Improvements to Planet Perl and Perlanet](https://perlhacks.com/2023/03/improvements-to-planet-perl-and-perlanet/) - This is a story of one of those nice incidents where something starts off simple, then spirals out of control for a while but, in the end, everyone wins. On Reddit, a few days ago, someone asked 'Is there a "Planet Perl" with an RSS feed?' and a few people replied, pointing out the existence
- [Writing a CPAN module that talks to ChatGPT](https://perlhacks.com/2022/12/writing-a-cpan-module-that-talks-to-chatgpt/) - ChatGPT exposes an API, but there's no CPAN module for taking advantage of that. Let's put that right (with help from ChatGPT)... Write a Perl CPAN module for connecting to a ChatGPT server To create a Perl CPAN module for connecting to a ChatGPT server, you will need to have Perl and the necessary dependencies
- [Containers for Coverage](https://perlhacks.com/2022/10/containers-for-coverage/) - I've been building Docker containers again. And I think you'll find this one a little more useful than the Perlanet one I wrote about a couple of weeks ago. Several years ago I got into Travis CI and set up lots of my GitHub repos so they automatically ran the tests each time I committed
- [Not that PR, thanks](https://perlhacks.com/2022/10/not-that-pr-thanks/) - It's October. And that means that Hacktoberfest has started. If you can get four pull requests accepted on other people's code repositories during October then you can win a t-shirt. In many ways, I think it's a great idea. It encourages people to get involved in open source software. But in other ways, it can
- [Building a Perlanet Container](https://perlhacks.com/2022/10/building-a-perlanet-container/) - I'm a dinosaur who still believes that web feeds are a pretty neat idea. I wrote and maintain perlanet (a Perl program for aggregating web feeds into a new feed - and building a web site based on that new feed) and I use it to build a few sites on topics I'm interested in.
- [Replacing CPAN RT](https://perlhacks.com/2020/12/replacing-cpan-rt/) - [Update: the CPAN Request Tracker was saved. It's now run by a new team of volunteers and none of my suggestions below are required.] Two weeks ago, we learned that the CPAN Request Tracker was closing down early next year. I proposed a plan that CPAN authors could follow to ensure that their users can
- [Down the rabbit hole](https://perlhacks.com/2020/09/down-the-rabbit-hole/) - Blog posts are like busses. You wait months for one and then two come along on consecutive days! Yesterday I wrote about how we didn't need a blogging platform for the Perl community - all we really needed was a good-looking feed aggregator. I mentioned Perlsphere as one such aggregator. Then Matthew commented, saying that
- [RT - Action Plan for CPAN Authors](https://perlhacks.com/2020/12/rt-action-plan-for-cpan-authors/) - CPAN RT is going away. CPAN authors have until the beginning of March to extract any useful information from it. RT is the "Request Tracker", a bug tracking system that is written by Best Practical. For almost as long as I can remember, anyone who uploads a module to CPAN gets a free ticket queue
- [Blogging for Perl](https://perlhacks.com/2020/09/blogging-for-perl/) - I think it was at YAPC Copenhagen in 2008 that a small group of us first discussed the idea of building a shared blogging platform for the Perl community. It was over a year later that we launched blogs.perl.org. I remember a lot of discussions over that time where we tried to thrash out exactly
- [Version Numbers](https://perlhacks.com/2016/12/version-numbers/) - Last week I mentioned how I had uploaded a new version of Symbol::Approx::Sub. Because there were pretty major changes to the inner workings of the module (although the interface still looked the same) I decided that I would move it from version 2.07 to version 3. At the same time, I decided that I would
- [The Best of Perl Hacks](https://perlhacks.com/2020/04/the-best-of-perl-hacks/) - What do you do when you're stuck inside because Coronavirus means that your country is in lockdown? Well, you write a book, of course. Or, to be more accurate, you cobble together fifty or so old blog posts into a book. So that's what I've done. Now you can read some of your favourite Perl
- [Subroutines and Ampersands](https://perlhacks.com/2015/04/subroutines-and-ampersands/) - I've had this discussion several times recently, so I thought it was worth writing a blog post so that I have somewhere to point people the next time it comes up. Using ampersands on subroutine calls (&my_sub or &my_sub(...)) is never necessary and can have potentially surprising side-effects. It should, therefore, never be used and
- [PerlCon Europe 2019](https://perlhacks.com/2019/08/perlcon-europe-2019/) - Last week I was in Riga for this year's European PerlCon (the conference formerly known as YAPC::Europe). As has become traditional, here's my report of the conference. My conference began on Tuesday night at the pre-conference meet-up. Most people get into town on the night before the conference starts and the organisers always designate a
- [Counting Weekends and Wrapping Text](https://perlhacks.com/2019/08/counting-weekends-and-wrapping-text/) - I said that I probably wouldn't have time to get involved with the Perl Weekly Challenge every week and that has, unfortunately, proven to be the case. But I had a few free minutes earlier in the week so I decided to look at this week's challenges. I'm glad I did because they seemed to
- [Perl Conference in Riga](https://perlhacks.com/2019/07/perl-conference-in-riga/) - It's only two weeks until I head to Riga for PerlCon 2019. I thought it was worthwhile posting a quick update confirming that I was going and telling you what I would be doing there. Firstly, I've previously mentioned that I was planning to run my "Modern Web Development with Dancer" workshop on the day
- [Perl Weekly Challenge - 2019-03-25](https://perlhacks.com/2019/03/perl-weekly-challenge-2019-03-25/) - I'm not sure that I'll have time to do these every week, but here are my answers to this week's two Perl Weekly Challenges. Challenge #1 Write a script to replace the character ‘e’ with ‘E’ in the string ‘Perl Weekly Challenge’. Also print the number of times the character ‘e’ found in the string. use strict; use warnings; use feature 'say';
- [Plans for Riga](https://perlhacks.com/2019/01/plans-for-riga/) - The European Perl Conference this year is going to be held in Riga in August. That might seem a long way away, but it's never too early to start thinking about these things. For example the conference web site went live earlier this week, enabling users to register for the conference and buy their tickets.
- [A Subtle Bug](https://perlhacks.com/2019/01/a-subtle-bug/) - Earlier this week, I saw this code being recommended on Stack Overflow. The code contains a nasty, but rather subtle bug. The version I saw has been fixed now, but I thought there were some interesting lessons to learn by looking at the problems in some detail. Let's start by working out what the bug
- [Please Don't Use CGI.pm](https://perlhacks.com/2018/11/please-dont-use-cgi-pm/) - Earlier this week, the Perl magazine site, perl.com, published an article about writing web applications using CGI.pm. That seemed like a bizarre choice to me, but I've decided to use it as an excuse to write an article explaining why I think that's a really bad idea. It's important to start by getting some definitions
- [London Perl Workshop 2018](https://perlhacks.com/2018/11/london-perl-workshop-2018/) - Last Saturday was the London Perl Workshop and (as has become traditional), I'm going to tell you how much fun it was so that you feel jealous that you missed it and make more of an effort to come along next year. This year was slightly different for me. For various reasons, I didn't have
- [Fixing a Bug](https://perlhacks.com/2018/09/fixing-a-bug/) - I fixed a bug earlier this week. Ok, actually, I introduced a bug and then spent the next few hours tracking it down and fixing it - but that doesn't sound quite so positive, does it? I thought it might be interesting to talk you through the bug and the fix. I should point out
- [The Joy of Prefetch](https://perlhacks.com/2015/09/the-joy-of-prefetch/) - If you heard me speak at YAPC or you've had any kind of conversation with me over the last few weeks then it's likely you've heard me mention the secret project that I've been writing for my wife's school. To give you a bit of background, there's one afternoon a week where the students at
- [The Perl Conference in Glasgow](https://perlhacks.com/2018/08/the-perl-conference-in-glasgow/) - Yesterday (despite the best efforts of Virgin Trains to stop me) I came home from The Perl Conference in Glasgow. I had a great week up in Glasgow, and I thought I'd better write about it before I forgot anything important. Pre-Conference I arrived on Sunday evening. This was the last day of the European
- [Introducing People to Perl](https://perlhacks.com/2018/07/introducing-people-to-perl/) - For most of last week I was out of London running three days of Perl training for... well, I probably shouldn't name them, so let's just call them a well-known British educational establishment. The photo above is a big clue. The people I was training were IT support staff; the people who keep many of
- [YAPC Europe 2015: A Community is a Home](https://perlhacks.com/2015/09/yapc-europe-2015-a-community-is-a-home/) - I'm in Granada, Spain for the 2015 "Yet Another Perl Conference" (YAPC). The three-day conference finished about an hour and a half ago and, rather than going to a bar with dozens of other attendees, I thought I would try to get my impressions down while it's all still fresh in my mind. YAPC is
- [Drawing Traffic Lights With Perl](https://perlhacks.com/2017/07/drawing-traffic-lights-perl/) - For a thing (that you may hear more about at some point in the future) I needed diagrams of traffic lights. But Google Image Search didn't really have what I was looking for. Everything was either too realistic or not CC-licensed so I couldn't use the images how I wanted. So I decided to do
- [Professional Programmer is Professional](https://perlhacks.com/2018/07/professional-programmer-is-professional/) - (The image above was the first result I got when searching Google Images for a CC-licensed image for "professional programmer".) Two weeks ago, I wrote about the SEO workshop I'm running on Tuesday morning just before The Perl Conference in Glasgow this August. Today, I'd like to give a few more details about the other
- [Web Site Tune-Up: A Case Study](https://perlhacks.com/2018/06/web-site-tune-up-a-case-study/) - I thought it might be interesting to talk about some of the topics I'll be covering at my workshops at The Perl Conference in Glasgow in August. Today I'll be talking about the Web Site Tune-Up workshop and in my next post, I'll cover The Professional Programmer. And I thought it would be most useful
- [Training in Glasgow](https://perlhacks.com/2018/06/training-in-glasgow/) - It's June, which means it's only a couple of months until the Europe Perl community descends en masse on Glasgow for this year's Perl Conference (formerly known as YAPC). For me, that also means I need to start planning the training courses I'll be running before the conference. And for you, it means you need to
- [Selenium and Perl](https://perlhacks.com/2018/05/selenium-and-perl/) - Some of you might remember the lightning talk I gave at the London Perl Workshop last year (it's available on YouTube, I'll wait if you want to watch it). In it, I said I planned to resurrect the Perl School brand, using it to publish Perl ebooks. One book, Perl Taster, was already available and
- [Two New Modules](https://perlhacks.com/2018/03/two-new-modules/) - There was a London Perl Mongers meeting at ZPG about ten days ago. I gave a short talk explaining why (and how) a republican like me came to be running a site about the Line of Succession to the British Throne. The meeting was great (as they always are) and I think my talk went well
- [Line of Succession](https://perlhacks.com/2018/01/line-of-succession/) - I'm a republican. No... wait... come back! That's not what I mean. I'm a long way from being a supporter of the Republican Party. I mean "republican" in its older meaning of "someone who thinks their country should be a republic. That is to say, I'm not a big fan of the British royal family.
- [Perl Vogue](https://perlhacks.com/2010/08/perl-vogue/) - I'm at YAPC::EU in Pisa, so I'm too busy having fun to write a long blog post about my new project - Perl Vogue. But I thought you might be interested in the lightning talk that I used to announce it yesterday. Perl Vogue from Dave Cross More detail when I get back from Italy
- [Two Books](https://perlhacks.com/2013/12/two-books/) - I've recently received review copies of a couple of new books. Here are the reviews of those books that I have submitted to Amazon. Designing the Internet of Things - Adrian McEwen & Hakim Cassimally (Wiley) I've been hearing people talking about "the internet of things" for a few years now. And I've always meant
- [Data Munging with Perl](https://perlhacks.com/2014/04/data-munging-perl/) - Many years ago, I wrote a book called Data Munging with Perl. People were kind enough to say nice things about it. A few people bought copies. I made a bit of money. Recently I re-read it. I thought that some of it was still pretty good. There were some bits, particularly in the early
- [Perlanet Update](https://perlhacks.com/2009/10/perlanet-update/) - Maybe it's just me, but when I know that people are using my code it galvanises me into improving it. Following the discovery that people were actually using Perlanet, I've made quite a few releases over the last week or so. I thought people might be interested in what I've been doing. Release 0.30 was
- [Regenerating Perl School](https://perlhacks.com/2017/12/regenerating-perl-school/) - About five years ago I ran a few training courses under the Perl School brand. The idea was simple - if you price training courses cheaply and run them at the weekend then you eliminate the most common reasons why people don't keep their Perl knowledge up to date. Of course, it's not quite that
- [London Perl Workshop 2015](https://perlhacks.com/2015/12/london-perl-workshop-2015/) - This time next week we will all be enjoying the London Perl Workshop. I thought it was worth looking at what the day has in store. As always (well, except that one time when they had no power) the LPW will take place at the Cavendish Campus of the University of Westminster. I'm told there
- [London Perl Workshop Report](https://perlhacks.com/2017/12/london-perl-workshop-report/) - (Photo above by Chris Jack) Last Saturday was the annual London Perl Workshop. I should write up what happened before I forget it all. I arrived at about 8:30 in the morning and was able to check in quickly - collecting a bit of swag which included a free t-shirt as I was a speaker.
- [Easy PSGI](https://perlhacks.com/2016/01/easy-psgi/) - When I write replies to questions on StackOverflow and places like that recommending that people abandon CGI programs in favour of something that uses PSGI, I often get some push-back from people claiming that PSGI makes things far too complicated. I don't believe that's true. But I think I know why they say it. I
- [London Perl Workshop Klaxon](https://perlhacks.com/2017/11/london-perl-workshop-klaxon/) - The London Perl Workshop is looking frighteningly imminent. It's on November 25th - that's less than three weeks away. All across the capital (and even further afield) if you listen hard you will hear the sounds of speakers frantically trying to get their talks ready. That, at least, is how I have spent my weekend. I'm
- [What I’m Doing At YAPC::Europe](https://perlhacks.com/2009/05/what-im-doing-at-yapceurope/) - I think I've now worked out all of the things that I'm doing at YAPC::Europe this year. It's turned into quite a list. The big news is that I'm giving an "Introductory Perl" training course over the weekend before the conference. One of the themes of the conference is to get more people involved in
- [Several Small Bits of News](https://perlhacks.com/2017/06/several-small-bits-news/) - A few little bits and pieces, none of which justify a blog post to themselves. blogs.perl.org Some of you will have seen that Evozon's grant to replace blogs.perl.org was cancelled a couple of months ago. This made me sad as I (along with the rest of the blogs.perl.org team) really want to see the current,
- [Culling My Modules](https://perlhacks.com/2015/07/culling-my-modules/) - About a year ago, I dabbled briefly with Travis CI. I even gave a talk about my experiences. The plan was that I would start to use it for all of my code. But real life intervened and I never got round to getting any further with that project. This weekend, I finally made some
- [Perl Books](https://perlhacks.com/2013/02/perl-books-2/) - The Perl community on LinkedIn is fascinating. It's a great way to see how Perl is perceived and used outside of the echo chamber. And that's a real eye-opener. Here's an example. Every few weeks (it seems) someone asks for advice on Perl books.At that point, a few people will jump in with sensible suggestions.
- [Genealogical Timelines in Perl and SVG](https://perlhacks.com/2017/08/genealogical-timelines-perl-svg/) - If you ever read my (mostly dead) more general blog, you might know that I'm a bit of an amateur genealogist. I've been tracing my family for over twenty-five years and I've got some branches of it back to the 1700s (actually, I have one branch back to the late 1600s). One problem in genealogy
- [Timeline Diagrams with Perl](https://perlhacks.com/2017/08/timeline-diagrams-perl/) - Two weeks ago, I introduced you to my new module SVG::TrafficLight and hinted that there were more SVG-based modules to follow. Today, I'd like to talk about the next one - SVG::Timeline. It all started over a year ago when I was looking through some of the more ridiculous religious questions on Quora when I
- [Amsterdam Training Questionnaire](https://perlhacks.com/2017/05/amsterdam-training-questionnaire/) - Update: I've closed this survey earlier than I expected to. For various personal reasons, I've decided that I just don't have the time to attend the conference in Amsterdam. It was back in the middle of March that I first raised the question of running some training in conjunction with the Perl Conference in Amsterdam
- [I Wrote Some Perl](https://perlhacks.com/2017/06/i-wrote-some-perl/) - Ok, yes, I've been writing Perl for over twenty years. But Perl 5.26 was released this week and for the first time, my name is mentioned in the release notes. Because I have not one, but two fixes in this release of Perl. The first is this commit which fixes a piece of documentation to
- [What Training Should I Run In Amsterdam?](https://perlhacks.com/2017/03/training-run-amsterdam/) - The Perl Conference (formerly known as YAPC) in Amsterdam is getting closer. Oh, sure, it's not imminent, but in five months time it will all be over. And there's a lot to get done in those five months. I'm glad I'm not one of the organisers. But there is something that I need to get
- [Shaving Last.FM Yaks](https://perlhacks.com/2017/02/shaving-last-fm-yaks/) - Long-time readers might remember that I once had a bit of an obsession with aggregating web feeds on sites that I called "planets". I wrote Perlanet to make this job easier and I registered the domain theplanetarium.org to host these planets. The planets I built were of varying levels of usefulness - but of all
- [Two Weekend Projects](https://perlhacks.com/2017/02/two-weekend-projects/) - It's far too long since I've posted anything here. I've no excuse really. Following the end of my contract in Canary Wharf, I was off work for seven weeks. OK, I was on holiday for two of those weeks, but that still leaves five weeks when I could have been doing something constructive, but actually
- [Marketing Perl at FOSDEM](https://perlhacks.com/2010/02/marketing-perl-at-fosdem/) - It's two weeks since I went to FOSDEM and I promised to write an article about what happened there. Better do that before I forget everything. Some time ago, Gabor applied for a Perl stand at this year's FOSDEM. The idea was that we could go along and promote Perl to people who are part
- [London Perl Jobs Mailing List](https://perlhacks.com/2015/01/london-perl-jobs-mailing-list/) - London.pm is undergoing one of its periodic reorganisations. We're in the process of moving our web site over to a new server and as part of that move, we've decided that we'll move our mailing list infrastructure to a third party system. Both the main discussion list and the announcements list will be run on
- [Hacking Symbol::Approx::Sub](https://perlhacks.com/2016/12/hacking-symbolapproxsub/) - In October, for (I think) the second year, Digital Ocean ran Hacktoberfest - a campaign encouraging people to submit pull requests to Github repos in exchange for free t-shirts. A few of us thought that this might be a good way to do a small bit of easy Perl advocacy, so we tagged some issues
- [The Fragility of Contracting](https://perlhacks.com/2016/11/the-fragility-of-contracting/) - I've been rather quiet for a few months. That's because I've been working for a large investment bank in Canary Wharf. It's no so much that the work takes up more of my time than other contracts I've had, but more that the incredibly restrictive firewalls banks have around their networks have meant that I
- [Feedback](https://perlhacks.com/2016/09/feedback/) - During the week, Barbie sent out the results from the feedback survey that he ran after YAPC Europe. The general results will be published later, but all of the speakers will have received an email containing the feedback from their talks. That feedback is private, but I'm happy to share mine with the world. The
- [YAPC Europe 2016](https://perlhacks.com/2016/09/yapc-europe-2016/) - I've been back from Cluj-Napoca for almost a week, so I should really write down what I remember about YAPC Europe before it's all forgotten. Day -1 I arrived in Cluj-Napoca on Sunday evening and got to my hotel quickly. There was just time for a quick meal before bed. Monday was the day that
- [Too Easy or Too Hard](https://perlhacks.com/2010/09/too-easy-or-too-hard/) - We hear a lot of people complaining that programming in Perl is too difficult, but I think that a lot of these problems stem from people making the opposite assumption - that writing Perl is easier than it actually is. Let me share a couple of examples. I've lightly disguised the companies in question -
- [DamianWare](https://perlhacks.com/2016/08/damianware/) - Yesterday at YAPC Europe I gave a talk called "Error(s) Free Programming". The slides are below, but it might make more sense once the video is online. http://www.slideshare.net/davorg/errors-free-programming The talk is about Damian Conway's module Lingua::EN::Inflexion and how it makes programmers' lives easier. As part of the talk, I invented a logo for the fictional
- [Cultured  Perl](https://perlhacks.com/2016/08/cultured-perl/) - Back in about 2008, I set up a group blog called "Cultured Perl". The idea was to have a blog that concentrated on the Perl community rather than the technical aspects that most Perl bloggers write about most of the time. It didn't last very long though and after a few posts it quietly died.
- [A Cautionary Tale](https://perlhacks.com/2012/08/a-cautionary-tale/) - I can never remember exactly how Time::Piece works. But that's ok because I have documentation. $ perldoc Time::Piece No documentation found for "Time::Piece". Huh? $perl -v This is perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-thread-multi ... $ corelist Time::Piece Time::Piece was first released with perl v5.9.5 $ perl -MTime::Piece -E'say $Time::Piece::VERSION' Can't
- [Intended Audience](https://perlhacks.com/2016/07/intended-audience/) - I thought I'd pretty much finished blogging about my upcoming Modern Web Development with Perl and Dancer training course. But a couple of days ago I saw a tweet that reminded me about an aspect that I'd completely forgotten. https://twitter.com/_confuseAcat_/status/759082032697860097 And he's right, of course. I haven't mentioned that at all. Let's put that right.
- [Modern Web Development with Perl and Dancer2](https://perlhacks.com/2016/07/modern-web-development-perl-dancer2/) - Here are some more details of the Modern Web Development with Perl and Dancer2 course that I'll be running in Cluj-Napoca on the day before YAPC Europe. The course runs a full day (that's six hours - in four 90-minute sessions with breaks in between). It's a hands-on course - you'll need to bring a laptop
- [A Wordpress Critter](https://perlhacks.com/2013/08/a-wordpress-critter/) - If you were at YAPC::Europe this week you might well have seen Richard Jelinek's talk about how to increase Perl's popularity (update: the slides are here). As part of that talk he suggested that the Perl community needed to run more of its infrastructure using Perl and (amongst other examples) he mentioned a discussion he
- [Updating Ogg::Vorbis::Header](https://perlhacks.com/2016/07/updating-oggvorbisheader/) - Last night, I uploaded a new version of Ogg::Vorbis::Header - a CPAN module that hasn't been updated since 2003 and which I strongly suspect no-one at all uses any more. You might be interested to hear what I did or why I did it. About a year ago, I wrote about the dashboard I had
- [Net::Songkick](https://perlhacks.com/2010/08/netsongkick/) - Sometimes it's good to just take a new idea and hack on it for a couple of hours to see what happens. That's what I've done this evening. I've been using Songkick for a while. Songkick is a web site that tracks users' attendance at gigs. I've been tracking the gigs I've been going to
- [Dancing in Cluj-Napoca](https://perlhacks.com/2016/05/dancing-cluj-napoca/) - Over the last couple of weeks I've been running a poll to decide which training course to run at YAPC Europe in August. Thank you you the people who voted in the poll. I've just closed the poll and the results are pretty clear. In Cluj-Napoca I'll be running a course on Modern Web Development
- [A Perl Programming Blog](https://perlhacks.com/2009/05/a-perl-programming-blog/) - Here's my new Perl programming blog. I have another blog where I talk about a number of different things, but I like to keep my Perl writing separate from the rest of it. Until recently I kept a Perl journal over at use.perl, but the technology behind that site is looking pretty dated so I
- [Taming QMail](https://perlhacks.com/2016/05/taming-qmail/) - I run my own email server. It uses QMail. I realise there are at least two problems there - all of the cool kids have been using Gmail for their email since approximately forever, and who the hell uses QMail anyway? Like most of these situations, it's that way for historical reasons. And, of course,
- [Training in Cluj - The Poll](https://perlhacks.com/2016/05/training-cluj-poll/) - A couple of weeks ago, I mentioned that I was planning to run a one-day training course the day before YAPC Europe in Cluj-Napoca this year. There have been a few discussions of my ideas in a various forums, so now it's time for the next stage. Below, you'll see a simple questionnaire. Please use
- [Training in Cluj](https://perlhacks.com/2016/04/training-in-cluj/) - I'm going to be running a day of training before YAPC Europe in Cluj. It'll be on Tuesday 23rd August. But that's all I know about the course so far, because I want your help to plan it. Training has been a part of the YAPC experience for a long time. And I've often run
- [Code Archaeology](https://perlhacks.com/2016/04/code-archealogy/) - Long-time readers will have seen some older posts where I criticised Perl code that I've found in various places on the web. I thought it was about time that I admitted to some of the dodgier corners of my programming career. You may know that one of my hobbies is genealogy. You might also know
- [Reviving WWW::Shorten](https://perlhacks.com/2016/03/reviving-wwwshorten/) - Last July I wrote a post threatening to cull some of my unused CPAN modules. Some people made sensible comments and I never got round to removing the modules (and I'm no longer planning to) but I marked the modules in question as "HANDOFF" and waited for the rush of volunteers. As predicted in my
- [Training Debrief](https://perlhacks.com/2016/02/training-debrief-2/) - During the second week of February, I ran my (approximately) annual public Perl training courses in association with FlossUK. Things were organised slightly differently this year. Previously we've run two two-day "general purpose" courses - one on Intermediate Perl and one on Advanced Perl. This year we ran four courses, each of which were on
- [Why Learn Perl?](https://perlhacks.com/2016/01/why-learn-perl/) - A couple of months ago I mentioned some public training courses that I'll be running in London next month. The courses are being organised by FlossUK and since the courses have been announced the FlossUK crew have been running a marketing campaign to ensure that as many people as possible know about the courses. As
- [London Perl Workshop Review](https://perlhacks.com/2015/12/london-perl-workshop-review-2/) - (Photo by Mark Keating) Last Saturday was the annual London Perl Workshop. And, as always, it was a great opportunity to soak up the generosity, good humour and all-round-awesomeness of the European Perl community. I say "European" as the LPW doesn't just get visitors from London or the UK. There are many people who attend
- [The Long Death of CGI.pm](https://perlhacks.com/2015/12/long-death-cgi-pm/) - CGI.pm has been removed from the core Perl distribution. From 5.22, it is no longer included in a standard Perl installation. There are good technical reasons for this. CGI is a dying technology. In 2015, there are far better ways to write web applications in Perl. We don't want to be seen to encourage the
- [Removing Modules from Core](https://perlhacks.com/2013/06/removing-modules-from-core/) - I was on holiday last week and missed most of the discussions about removing Module::Build and CGI from the Perl core in the next few years. I hope you won't mind if I chime in a little late with my thoughts. Module::Build I'm a little bemused by the Module::Build story. Well, perhaps "bemused" isn't quite
- [LPW Slides](https://perlhacks.com/2015/12/lpw-slides/) - A more detailed write-up of the LPW will follow in the next few days. But in the meantime, here are the slides to the three talks I gave. http://www.slideshare.net/davorg/modern-web-development-with-perl http://www.slideshare.net/davorg/conference-driven-publishing-56093858 http://www.slideshare.net/davorg/improving-dev-assistant
- [Penetration Testing with Perl](https://perlhacks.com/2015/02/penetration-testing-perl/) - I was sent a review copy of Penetration Testing with Perl by Douglas Berdeaux. I really didn't like it. Here's the review I've been sharing on Amazon and Goodreads. I've been wanting to learn a bit about Penetration Testing for a while and as Perl is my programming language of choice this seemed like a
- [Training Courses - More Details](https://perlhacks.com/2015/11/training-courses-more-details/) - Last week I mentioned the public training courses that I'll be running in London next February. A couple of people got in touch and asked if I had more details of the contents of the courses. That makes sense of course, I don't expect people to pay £300 for a days training without knowing a
- [Public Training in London - February 2016](https://perlhacks.com/2015/11/public-training-in-london-february-2016/) - For several years I've been running an annual set of public training courses in London in conjunction with FLOSS UK (formerly known as UKUUG). For various scheduling reasons, we didn't get round to running any this year, but we have already made plans for next year. I'll be running five days of training in central
- [Build RPMs of CPAN Modules](https://perlhacks.com/2015/10/build-rpms-of-cpan-modules/) - If you've been reading my blog for a while, you probably already know that I have an interest in building RPMs of CPAN modules. I run a small RPM repository where I make available all of the RPMs that I have built for myself. These will either be modules that aren't available in other RPM
- [Beginners Perl Tutorial](https://perlhacks.com/2015/08/beginners-perl-tutorial/) - A few weeks ago I got an interesting email from someone at Udemy. They were looking for someone to write a beginners Perl tutorial that they would make available for free on their web site. I think I wasn't the only person that they got in touch with but, after a brief email conversation, they
- [The “M” Word](https://perlhacks.com/2009/12/the-m-word/) - Yesterday was the London Perl Workshop. As always it was a fabulous day packed full of great talks about Perl. Thanks to the organisers for all the work they put in. I gave the keynote speech first thing in the morning. The talk was called The "M" Word and it was an overview of how
- [Driving a Business with Perl](https://perlhacks.com/2015/08/driving-a-business-with-perl/) - I've been a freelance programmer for over twenty years. One really important part of the job is getting paid for the work I do. Back in 1995 when I started out there wasn't all of the accounting software available that you get now and (if I recall correctly) the little that was available was all
- [Mailing Lists](https://perlhacks.com/2015/07/mailing-lists/) - Over the years I've set up a few mailing lists for the discussion of various projects I've been involved with. There's always an expectation that mailing lists will flourish without much input from me. But it never works out like that. The truth is that most mailing lists just quietly die. And, in many cases,
- [Building TwittElection](https://perlhacks.com/2015/05/building-twittelection/) - I was asked to write a guest post for the Built In Perl blog. I wrote something about how I built my site, TwittElection, for the recent UK general election. In the UK we have just had a general election. Over the last few weeks many web sites have sprung up to share information about
- [DBIC Training in Granada](https://perlhacks.com/2015/05/dbic-training-in-granada/) - It's been a while since I've run a training course alongside a YAPC. By my calculations, the last time was Riga in 2011. But I've been talking to the organisers of this year's conference and we have plan. I'm going to be running a one-day introductory course on DBIx::Class before the conference (I think it'll
- [Misunderstanding Context](https://perlhacks.com/2013/12/misunderstanding-context/) - Over the last few days I've been involved in a discussion on LinkedIn[1]. It has been interesting as it shows how many people still misunderstand many of the intricacies of context and, in particular, how it ties in with the values returned from subroutines. The original question asked why these two pieces of code acted
- [Modern Perl Articles](https://perlhacks.com/2015/03/modern-perl-articles/) - Back in 2011 I wrote a series of three articles about "Modern Perl" for Linux Format. Although I mentioned all three articles here as they were published, I didn't post the actual contents of the articles as I wasn't sure about the copyright situation. But now I suspect that enough time has passed that copyright
- [Dev Assistant](https://perlhacks.com/2014/12/dev-assistant/) - A couple of days ago, I updated to my laptop to Fedora 21. One of the new features was an application called DevAssistant which claimed that: It does not matter if you only recently discovered the world of software development, or if you have been coding for two decades, there's always something DevAssistant can do
- [Slideshare Stats](https://perlhacks.com/2014/12/slideshare-stats/) - For many years (since the end of 2007, apparently) I've been uploading the slides from my talks and training courses to Slideshare. This morning I got an email from them, telling me that they had made their analytics pages freely available. I don't know if this is a permanent change or a special offer, but
- [Perl Recruitment Thoughts](https://perlhacks.com/2014/12/perl-recruitment-thoughts/) - Not many weeks go by when I don't hear of another Perl-using company that has been evaluating alternative technologies. In most cases, it's not because they think that Perl is a bad language to use. The most common reason I hear is that it is becoming harder and harder to find good Perl programmers. On
- [Modern Perl Web Development](https://perlhacks.com/2010/12/modern-perl-web-development/) - Modern Web Development with Perl from Dave Cross Last Saturday was the annual London Perl Workshop. I'll have more to say about the day later[1], but I just wanted to take the time to share the slides for the workshop that I ran in the morning. It was a quick guide to modern Perl web
- [Evolving Software with Moose](https://perlhacks.com/2010/10/evolving-software-with-moose/) - Evolving Software with Moose from Dave Cross Last night I was speaking at the Milton Keynes Perl Mongers technical meeting. I gave a new talk about how Moose (and, in particular, Moose traits) make Perlanet easier to maintain and enhance. The slides are available on Slideshare.
- [LPW & Perl Web Book](https://perlhacks.com/2014/11/lpw-perl-webbook/) - Return to the Kingdom of the Blind from Dave Cross Last Saturday was the London Perl Workshop. As always, it was a great day with a fabulous selection of talks. As always, I'm desperately waiting for the videos to appear so that I can see the talks that I was forced to miss because of
- [Upcoming Training](https://perlhacks.com/2014/10/upcoming-training-2/) - I have a few training courses coming up in the next few weeks which I thought you might be interested in. Firstly, the London Perl Workshop is on 8th November. I'll be giving a two hour talk on "Perl in the Internet of Things". As always, the workshop is free, but please register on the
- [Perl's Problems](https://perlhacks.com/2014/09/perls-problems/) - It's been over six weeks since I wrote my blog post on Perl usage. I really didn't mean to leave it so long to write the follow-up. But real life intervened and I haven't had time for much blogging. That's still the case (I should be writing a talk right now) but I thought it
- [Testing Syntax Highlighting](https://perlhacks.com/2009/06/testing-syntax-highlighting/) - Right. I think I might have got this cracked now. Here's some Perl code. #!/usr/bin/perl use strict; use warnings; print "Hello World\n"; That's pretty cool, isn't it. I wonder what it'll look like in the web feed. I'll try to feed my fixes back to the author of the plugin.
- [What is Wrong With this Picture?](https://perlhacks.com/2009/06/what-is-wrong-with-this-picture/) - I've just found a number of subroutines defined this way in the code that I'm working on. sub do_something () { my $parameter = shift; ... } I discovered the problem because I started getting errors about "too many parameters". I knew what the problem was (the empty prototype) but it took a couple of
- [Context](https://perlhacks.com/2011/01/context/) - This generated a lot of discussion in a training course that I ran this week so I thought it was worth sharing more widely. I think you can say that you understand the concept of context in Perl if you know what these four statements will print and (more importantly) can explain why they don't
- [Perl Search Engine](https://perlhacks.com/2011/10/perl-search-engine/) - Often on sites like StackOverflow you'll see questions that people could have answered for themselves if they had just searched the right web sites (usually perldoc or CPAN). But instead, they just went straight for Google and ended up with some dodgy, out of date information that just left them confused. In order to get
- [Programming Like It's 1999](https://perlhacks.com/2011/11/programming-like-its-1999/) - This article was published yesterday. It shows a way to extract data about a film from IMDB and put it into a local database. Actually, it doesn't even do that. It produces SQL that you can then run to insert the data. It's all rather nasty stuff and indicative of the fact that most people
- [How Well Can You Read Documentation?](https://perlhacks.com/2012/03/how-well-can-you-read-documentation/) - (I was going to call this post "How well do you understand context?" but I think this title is more accurate). I just saw someone recommending this code: $reversed = reverse(split //, $string); Looks sensible enough, doesn't it? But it isn't. What's the hidden inefficiency?
- [Learning from Bad Code](https://perlhacks.com/2012/09/learning-from-bad-code/) - I've written before about Linux Format's habit of sharing badly written Perl code. I thought things were improving, but in the new edition (November 2012, issue 163) they're back to their old tricks. This time it's a tutorial called "Starfield: Learn new languages". In this tutorial Mike Saunders writes similar starfield simulation code in C,
- [Texinfo 5.0 in Perl](https://perlhacks.com/2013/02/texinfo-5-0-in-perl/) - There was a story on Slashdot on Sunday saying that the new version of Texinfo had replaced the old, C, implementation of makeinfo with one written in Perl. I thought it would be interesting to look at the Perl they've written. This is, after all, a reasonably large example of Perl code that will be
- [Pebble and Perl](https://perlhacks.com/2013/06/pebble-and-perl/) - I've been wearing a Pebble watch for a couple of months now. I really like it but, to be honest, it's the potential that has me most excited. The number of apps currently available is a bit disappointing and the API is taking its time appearing. But even when the API is published, I wonder
- [Unicode and Perl](https://perlhacks.com/2013/08/unicode-perl/) - Over the last couple of days I've been involved in a couple of discussions where it is clear that other people don't understand how Perl deals with Unicode. The documentation is clear and detailed (there's even a good tutorial) but for some reason people still persist in misunderstanding it. Here's a quick quiz. Can you
- [Dots and Perl](https://perlhacks.com/2014/01/dots-perl/) - I was running a training course this week, and a conversation I had with the class reminded me that I have been planning to write this article for many months. There are a number of operators in Perl that are made up of nothing but dots. How many of them can you name? There are
- ["I Do Not Want To Use Any Modules"](https://perlhacks.com/2014/09/want-use-modules/) - Almost every day on the Perl groups on LinkedIn (or Facebook, or StackOverflow, or somewhere like that) I see a question that includes the restriction "I do not want to use any modules". There was one on LinkedIn yesterday. He wanted to create a MIME message to pass to sendmail, but he didn't want to install
- [Perl Usage](https://perlhacks.com/2014/08/perl-usage/) - In my last blog post, I posted a graph showing that out of 135 companies at a recent Silicon MilkRoundabout recruitment event, only one said that they were using Perl. That has led to some interesting discussions that I'd like to address here. I should make it clear that I wasn't presenting my graph as
- [Github, Travis-CI and Perl](https://perlhacks.com/2014/07/github-travis-ci-perl/) - Last night we held a London Perl Mongers Technical Meeting. It was organised by Sue Spence and the venue was sponsored by Rick Deller of Eligo. Much fun was had and much knowledge was imparted. Alex Balhatchet spoke about Test::Kit. Andrew Solomon talked about training people in Perl. Thomas Klausner introduced OX and AngularJS. And
- [Programming Language Usage](https://perlhacks.com/2014/07/programming-language-usage/) - Back in May, I spent an afternoon at Silicon MilkRoundabout. Silicon MilkRoundabout is a recruitment fair for techies. It's specifically aimed at people who want to work for start-ups around the Old Street area (although they aren't particularly stringent about sticking to that - for example, the BBC were there). We were given a booklet
- [London Perl Workshop](https://perlhacks.com/2014/07/london-perl-workshop-3/) - The London Perl Workshop 2014 has been announced. It will be at the University of Westminster (the usual location) on Saturday 8th November. That's a few weeks earlier in the year than it usually is. The theme for this year is "The Internet of Things". You can find out more about the workshop, register and
- [London Perl Mongers Meeting](https://perlhacks.com/2014/07/london-perl-mongers-meeting/) - I thought you might be interested in a couple of events that the London Perl Mongers have coming up in the next couple of months. Technical Meeting 24th July 2014, Conway Hall Currently, four talks have been announced. Thomas Klausner (domm) from Vienna.pm is going to talk about OX & AngularJS Alex Balhatchet is going
- [Perl School Slides](https://perlhacks.com/2014/07/perl-school-slides/) - In 2012 and 2013 I ran an experiment called Perl School. I ran cheap Perl training on a Saturday at Google Campus. I got some great reactions but I stopped it after almost a year because it wasn't getting the traction that I hoped for and attendances were starting to drop. That's not the end
- [Training in London](https://perlhacks.com/2014/05/training-london/) - For many years now a regular feature of my training calendar has been the annual public courses that I have run in London in conjunction with FlossUK. Normally these happen in February, but this year I had to postpone them as I was in the USA for a lot of February. But FlossUK still wanted
- [Installing Modules](https://perlhacks.com/2014/03/installing-modules/) - If you've seen me giving my "Kingdom of the Blind" lightning talk this year, then you'll know that I've been hanging around places like the LinkedIn Perl groups and StackOverflow trying to help people get the most out of Perl. It can be an "interesting" experience. One of the most frequent questions I see is
- [The Return of blogs.perl.org](https://perlhacks.com/2014/01/return-blogs-perl-org/) - About an hour ago we turned blogs.perl.org back on. There's also a blog post where we explain what happened in a lot more detail. If you have an account on the site then you will have received an email explaining what you need to do now. Basically, we've invalidated all of the passwords so you'll
- [blogs.perl.org](https://perlhacks.com/2014/01/blogs-perl-org/) - It seems that last night blogs.perl.org was hacked. I first became aware of it when someone pointed me at this story a few hours ago. As you'll see, the contents of the mt_author table have been made public. We're still investigating the extent of the hack. But, as a precaution, we have configured the site
- [Perl APIs](https://perlhacks.com/2014/01/perl-apis/) - For a lot of programmers out there, Perl has become largely invisible. They just never come across it. That might seem strange to you as you sit inside the Perl community echo chamber reading the Perl Ironman or p5p, but try this simple experiment. Think of a web site that you use and that supplies
- [Perl in Banks](https://perlhacks.com/2013/11/perl-banks/) - An email has flooded in: I came across your presentation 'Perl in the Enterprise' and happen to have a burning concern closely related to one of the bullets 'Banks see as a competitive advantage'. I am consulting at a major bank in South Africa, and our team have been using Perl very productively to
- [Perl Search Revisited](https://perlhacks.com/2013/09/perl-search-revisited/) - A couple of years ago I wrote a blog post about a Google Custom Search that I had set up to create a specialised search engine for Perl. Recently I've revisited this idea. I've given the search engine its own subdomain and I've added some new sites to the list of sites that it covers.
- [Talks from Kiev](https://perlhacks.com/2013/09/talks-kiev/) - It has only been a few weeks since YAPC::Europe in Kiev and already all of the videos are available on YouTube. Here are the recordings of my three talks. On the first day I spoke about "25 Years of Perl". Later that day I was one of the lightning talk speakers. My talk starts at
- [Parallel Universe Perl 6](https://perlhacks.com/2013/09/parallel-universe-perl-6/) - Last night was the monthly London Perl Mongers social meeting. I hadn't been for far too long, but I went last night and enjoyed myself. The talk was as varied as it always is, but one conversation in particular got me thinking. We were talking about YAPC Europe and someone asked if I had seen
- [CPAN RPMs](https://perlhacks.com/2013/08/cpan-rpms/) - If you've been reading my blog for a while, you'll know that I have an interest in packaging CPAN modules as RPMs for Linux distributions based on Red Hat. For a few years, I've been (infrequently) building spreadsheets which list the various modules that are available as RPMs from the better know repositories (and my
- [The “Without Whom”s](https://perlhacks.com/2009/12/the-without-whoms/) - In The "M" Word, I listed many of the things that have happened in the Perl marketing world over the last year. I wanted to end the year by mentioning a few people without whom this project would not have got off the ground at all. Curtis "Ovid" Poe started writing about Perl's image issues
- [Modern Perl at OpenTech](https://perlhacks.com/2010/07/modern-perl-at-opentech/) - I mentioned a few months ago that I'd be running an "Introduction to Modern Perl" training course at YAPC::Europe this year. But in the interests of speaking outside of the Perl community as much as possible, I'm also going to be giving a slightly different version of that course at the OpenTech conference in London in September.
- [Modern Perl at OpenTech](https://perlhacks.com/2010/09/modern-perl-at-opentech-1/) - Modern Perl View more presentations from Dave Cross. OpenTech is an annual one-day conference in London where geeks get together and share information about cool things they are doing with technology. The emphasis is on projects that improve society in some way so you'll see a lot of talks about really interesting projects. Usually
- [YAPC Europe Approaches](https://perlhacks.com/2013/08/yapc-europe-approaches/) - This time next week YAPC Europe will have started and many of us will be enjoying ourselves in Kiev. The organisers published the schedule over the weekend and it looks like it's going to be a great conference. I spent some time trying to work out which talks I want to see and I've written
- [Just Build Something](https://perlhacks.com/2013/07/just-build-something/) - About a month ago, JT Smith suggested that we should all stop talking about Perl and just build something. And, purely coincidentally, over the last few weeks I resurrected a project that I have been poking at for about five years and have finally turned it into something that I'm happy to show the world.
- [This Makes Me Happy](https://perlhacks.com/2009/10/this-makes-me-happy/) - I like it when my software is used to do interesting and useful stuff. Alex Kapranoff has built PlanetPerl.ru to aggregate blogs about Perl in Russian. He has used a patched version of my module Perlanet. I'll be taking a close look at Alex's patches to see what I should bring back into the CPAN
- [Perl School: DBIx::Class](https://perlhacks.com/2013/06/perl-school-dbixclass/) - Update: I'm sorry to have to announce that this course has been cancelled. I hope to reschedule for later in the year. Tempus fugit and another Perl School rolls around. Next Saturday (June 8th) I'll be running my one-day course on Database Programming with Perl and DBIx::Class. As always the course will take place at
- [What New(ish) Perl features Do You Use?](https://perlhacks.com/2013/05/what-newish-perl-features-do-you-use/) - Over on LinkedIn, someone asked me "What core PERL[sic] features do you use regularly that are new since 95?" It's hard to be sure as the perldelta files only seem to go back to 1997 (for example, when were qw(...), q(...) and qq(...) added?), but here's a quick list off the top of my head.
- [Three Short Announcements](https://perlhacks.com/2011/02/three-short-announcements/) - Been a while since I've had time to post anything here, but I've just got time for three quick announcements. 1/ Last week I ran some public training courses. I've just put the slides online. 2/ There's a London.pm technical meeting in two weeks time. It's at Net-A-Porter (above the Westfield shopping centre) on October
- [London.pm Tech Meeting](https://perlhacks.com/2011/03/london-pm-tech-meeting/) - On Thursday we had the first London.pm tech meeting for a rather long time. But it was well worth the wait. We were at Net-A-Porter's very nice offices above the Westfield shopping centre. There were four interesting talks. Pete Sergeant talked about High Level Web Testing, Zefram explained the New Extensibility Features Coming in Perl
- [Articles](https://perlhacks.com/2013/05/articles/) - I've been writing articles about Perl for a number of years. Because I have written for many people, the articles are currently spread out over a lot of different sites. I've decided to do something about this. There's now a new articles section on the site and over the next few weeks I plan to
- [Moose Course This Saturday](https://perlhacks.com/2013/04/moose-course-this-saturday/) - I'm running another Perl School this Saturday (6th April). This time the subject is Object Oriented Programming with Perl and Moose. I ran a two-hour taster version of this course at the London Perl Workshop back in November, but this is the full six-hour version. Tickets are £30 each. The course is run at Google
- [Training Cancelled](https://perlhacks.com/2013/02/training-cancelled/) - A few weeks ago, I mentioned that I had two days of public training coming up in Manchester in April. I've just heard that the organisers have decided to cancel this training as they have had no bookings for the classes. I'm sorry if anyone was planning to book closer to the date and has
- [Training Debrief](https://perlhacks.com/2013/02/training-debrief/) - I've spent a lot of the last seven days running training courses. It might be interesting to share some thoughts about how they went. Last Saturday was Perl School 4. A week before the course I was a little worried about ticket sales, but I did a bit of marketing early last week and managed
- [Give Me MetaCPAN](https://perlhacks.com/2013/01/give-me-metacpan/) - Ever since MetaCPAN launched I've been getting increasingly irritated with people who still use links to search.cpan.org. Isn't it obvious that MetaCPAN is better? Why do people still insist on sharing links to the older site? Of course they do it for various reasons. Perhaps they aren't as in touch with the modern Perl world
- [Upcoming Training](https://perlhacks.com/2013/01/upcoming-training/) - It's a new year, so it's probably a good time to remind you about some training sessions that I have coming up. Perl School 4 is on 9th February. The subject this time is Database Programming with Perl and DBIx::Class. As always, a full day of training costs just £30 and the class will be
- [Perl School 3](https://perlhacks.com/2012/12/perl-school-3-2/) - Yesterday was the third Perl School. Twenty-one students converged on Google Campus in London and spend a day learning about Moose. The day seemed to go well. People asked intelligent questions and seemed to understand what I was telling them. Hopefully the feedback forms will tell a similar story. No more training now for a
- [Why Corporates Hate Perl](https://perlhacks.com/2012/11/why-corporates-hate-perl/) - This is a reprint of an old blog post. A few years ago I was writing blog posts (semi-)regularly for O'Reilly. This is the one that probably got the most feedback. I'm reprinting it now because a) it's pretty hard to find on the O'Reilly site and b) it's relevant to a couple of conversations
- [Speaking at the LPW](https://perlhacks.com/2012/11/speaking-at-the-lpw/) - I gave three talks at the London Perl Workshop yesterday[1]. That wasn't the original plan, but I kept coming up with talks that seemed to be good ideas. The last one was on 25 Years of Perl was a bit of a failure as I broke the second rule of presenting (always plug in your
- [LPW Schedule](https://perlhacks.com/2012/11/lpw-schedule/) - (You wait weeks for a blog post and then two come along practically together. But this is just another short one.) It's the London Perl Workshop on Saturday. The schedule for the day was published some time ago and it's as diverse and interesting as it always is. If you look closely at the schedule, each talk
- [Blogging By Proxy](https://perlhacks.com/2012/11/blogging-by-proxy/) - I've been too busy to write anything here for a while, but here's the next best thing. A few months ago I gave a talk on Unicode Best Practices to the Perl team at Net-A-Porter. And now Adam Taylor has written up that talk on their new technical blog.
- [25 Years of Perl](https://perlhacks.com/2012/10/25-years-of-perl/) - A few days ago, I mentioned that I'm giving a talk at the London Perl Workshop called Twenty Five Years of Perl in Twenty Five (ish) Minutes. I already have a good idea of how the talk will go. I've got a good structure to hang everything off. But I'm still working on the detail. I know I'm
- [London Perl Workshop](https://perlhacks.com/2012/10/london-perl-workshop-2/) - Today, the initial list of talks for this year's London Perl Workshop was announced. Looks like I'll be giving three talks of various lengths. And of various levels of seriousness. Introduction to OO Perl with Moose‎ (two hours) Twenty Five Years of Perl in Twenty Five (ish) Minutes (twenty minutes) Matt's PSGI Archive (lightning talk)
- [DBIC vs DBI](https://perlhacks.com/2012/10/dbic-vs-dbi/) - Three times in the last few months I've had the "DBIC or raw DBI" discussion. People have told me that they don't use DBIC because raw DBI is better. And each time, the person promoting DBI in the discussion has used an argument that boils down to "DBIC is probably useful for people who don't
- [Perl School 2](https://perlhacks.com/2012/10/perl-school-2/) - Yesterday was the second Perl School course. Once again it was at Google Campus and once again it was on Modern Perl for Non-Perl Programmers. The big difference this time though was that people were paying £30 a time to attend. And that did make a difference. While the previous (free) version sold out in
- [Introducing Perl School](https://perlhacks.com/2012/06/introducing-perl-school/) - Yesterday I talked briefly about the Modern Perl for Non-Perl Programmers course that I'll be running at Google Campus in October. If you look at the URL for the course information you might see a hint of a wider branding strategy. I'm planning to run a series of these low cost, high attendance courses. And
- [Perl School 3](https://perlhacks.com/2012/09/perl-school-3/) - The second Perl School course is just under four weeks away (and there are still tickets available) but it's time to start looking ahead. The third Perl School is going to be on 8th December. Like the others, it will be at Google Campus. But this time the subject will be slightly different. The first
- [CGI.pm vs Templates](https://perlhacks.com/2012/08/cgi-pm-vs-templates/) - I've just been involved in a discussion on LinkedIn that I thought deserved a wider audience (I have no idea how well that link works if you're not a member or or logged in to LinkedIn). A couple of days ago, someone asked for advice on the best way to include HTML in a Perl
- [Google Currents](https://perlhacks.com/2012/07/google-currents/) - Google Currents is an application for viewing content on Android and iOS devices. It reformats content (based on web feeds) to look like a magazine. It looks great on my HTC One X and I'm expecting it to look even better on my Nexus 7 when it arrives. It's possible to subscribe to web feeds
- [What is Modern Perl?](https://perlhacks.com/2012/06/what-is-modern-perl/) - I wrote an article for Josette called "What is Modern Perl?" In it, I talk about the different things that people might mean when they talk about Modern Perl and why it's well worth buying a copy of the new edition of the camel book. After a gap of twelve years, a new edition of
- [Modern Perl for Non-Perl Programmers (Redux)](https://perlhacks.com/2012/06/modern-perl-for-non-perl-programmers-redux/) - Six weeks ago I announced that I'd be running a free one-day course called "Modern Perl for Non-Perl Programmers" in August. Places on that course were fully booked in less than a day. So I've decided to run to course again, two months later. It will still be at Google Campus, and the date is
- [Perl Teach-In 2012](https://perlhacks.com/2012/04/perl-teach-in-2012/) - Back in 2007 the London Perl Mongers ran a free one-day Perl training course at the BBC's offices in White City. That was five years ago, so for a couple of months I've been thinking that it was probably about time that we did another one. And then suddenly this afternoon a few loose ends
- [XML::Feed](https://perlhacks.com/2012/03/xmlfeed/) - XML::Feed is the module that does most of the heavy lifting for Perlanet and, as such, it powers some important parts of the Perl community's infrastructure. Unfortunately, for a while now it's had a rather long list of outstanding bugs that weren't getting fixed. Sometime last year, Matt Trout got co-maintainership on the module and shortly afterwards
- [Being Helpful](https://perlhacks.com/2012/03/being-helpful/) - I like to help people who know less Perl than I do. I like to help them to improve their standard of Perl. I particularly like to help to improve the standard of Perl that is found on random sites on the web. This is because if I find your nasty Perl code on the
- [Yet More Modern Perl in Linux Format](https://perlhacks.com/2012/01/yet-more-modern-perl-in-linux-format/) - Over the weekend the postman bought me my subscribption copy of Linux Format issue 155. This contains the third (and final) part of my Modern Perl tutorial. In this part we're adding features to the Dancer web application that we started in issue 153. This series has concentrated on web applications (with Dancer) and database
- [Free Training Competition in Linux Format](https://perlhacks.com/2012/01/free-training-competition-in-linux-format/) - I've mentioned before that I'm running some public training courses in London next month. But how do you fancy coming along to those courses for free? Those lovely people at O'Reilly have put an advert for the courses in the new issue of Linux Format which hits the shops about now. That's issue 154 and
- [The Perl Community - A Modest Proposal](https://perlhacks.com/2012/01/the-perl-community-a-modest-proposal/) - Here's a video of the lightning talk that I gave at the London Perl Workshop in November last year. This video (along with many other videos from the workshop) is also available at Presenting Perl.
- [Public Training Courses in February](https://perlhacks.com/2011/12/public-training-courses-in-february/) - I'll be running some public training courses in London in February. There will be two two-day courses (which include practical sessions). The intermediate course will be on Feb 21/22 and the advanced course will be running on Feb 23/24. The courses will be held at the Imperial Hotel in Russell Square. For more details (including
- [More Modern Perl in Linux Format](https://perlhacks.com/2011/12/more-modern-perl-in-linux-format/) - Yesterday's post bought my subscription copy of Linux Format issue 153. This issue contains the second article in my short series about Modern Perl. In this article we take the simple DBIx::Class application that we wrote last time and put a web front end on it using Dancer. Over the next few days I'll be
- [London Perl Workshop Review](https://perlhacks.com/2011/11/london-perl-workshop-review/) - Unfortunately O'Reilly's Josette Garcia couldn't be at the London Perl Workshop, so she asked if I could write something about it for her blog. It took me longer than it should have done, but my post has just been published over at Josetteorama. Hopefully Josette will be back at next year's event. She was much
- [Saint Pierre and Miquelon](https://perlhacks.com/2011/11/saint-pierre-and-miquelon/) - Does Saint Pierre and Miquelon mean anything to you? It's a small French-owned territory just off the coast of Newfoundland. Why would this be of any interest on a Perl blog? Well, it's a French territory with it's own ccTLD. And that ccTLD is .pm. Ever since Perl Mongers started we've looked longingly at that
- [A Brief History of the LPW](https://perlhacks.com/2011/11/a-brief-history-of-the-lpw/) - In his opening remarks on Saturday, Mark Keating suggested that we might be at the tenth London Perl Workshop. That seemed unlikely to me, so I've done a little research. And it seems that I was right. The first LPW was in 2004, which makes this year's the eighth. In a way, I'm happy that
- [Modern Core Perl Slides](https://perlhacks.com/2011/11/modern-core-perl-slides/) - Here are the slides from the Modern Core Perl talk that I gave at the LPW yesterday. Modern Core Perl View more presentations from Dave Cross A great day at the workshop as always. And what a lot of people there were! Thanks to everyone who organised, spoke or attended.
- [Modern Core Perl](https://perlhacks.com/2011/10/modern-core-perl/) - The London Perl Workshop is in two weeks time. Have you registered yet? There are apparently 200 people signed up already. I'm going to be there giving a training course in the morning. It's called Modern Core Perl and it will introduce many of the new features that have been added to the Perl core
- [Doomed Domains](https://perlhacks.com/2011/06/doomed-domains/) - Summer is YAPC time. And YAPC means getting inspired on Perl-related projects. And that, obviously, means buying domain names for those projects. And that, inevitably, leads to lots of email from domain registries at about this time of year which roughly translate to "are you ever going to do anything useful with that domain you
- [Perl Tutorial](https://perlhacks.com/2011/10/perl-tutorial/) - Google Reader just showed me Mithaldu's blog post about the falling level of Google searches for the term "perl tutorial". The fall is, of course, more than a little worrying and we should do what we can to get more people searching for Perl. But I wondered what results Google is currently returning for this
- [Modern Perl in Linux Format](https://perlhacks.com/2011/10/modern-perl-in-linux-format/) - A couple of times, I've complained here about the standard of Perl articles in the British magazine Linux Format. Following the second of those articles I got into a discussion with Graham Morrison, the editor of the magazine and he offered me the opportunity to improve matters by writing my own short series of tutorials
- [Modern Core Perl at the LPW](https://perlhacks.com/2011/09/modern-core-perl-at-the-lwp/) - This year's London Perl Workshop will be on November 12th. We've just tied down the details of the free training course that I'll be running on the day. It will be called "Modern Core Perl" and will be a two-hour discussion of how the Perl core has changed since Perl 5.10. More details nearer the
- [YAPC::Europe Report](https://perlhacks.com/2011/09/yapceurope-report/) - It's nearly three weeks since I got back from Riga. I should probably tell you a bit about what I did. I flew over on Saturday and on Sunday I gave my "Introduction to Modern Perl" talk. There were nine people on the course and they all seemed to find it useful. The conference itself
- [YAPC::Europe Preview](https://perlhacks.com/2011/07/yapceurope-preview/) - Earlier this year I met Josette Garcia at OpenTech and she told me about her new blog Josetteorama. She asked me if I'd like to contribute a few articles about Perl to the site. I agreed and then promptly forgot about it for a couple of months. But I remembered my promise a week or
- [Moving Stuff Around](https://perlhacks.com/2011/07/moving-stuff-around/) - A few weeks ago I talked about a few domains that I was going to let lapse unless anyone wanted to do anything with them. No-one showed any interest so the domains will go away over the next few months. But in order to hang on to the content, I spend a couple of hours
- [Training in Riga](https://perlhacks.com/2011/07/training-riga/) - YAPC Europe is getting closer. We'll all be heading off to Riga in about six weeks. As has become traditional, there are a number of training courses being held both before and after the conference. This includes my Introduction to Modern Perl course on Sunday 15th August. The course is a one-day overview of many
- [Perl Versions](https://perlhacks.com/2011/06/perl-versions/) - There has been a flurry of Perl 5 releases over the last few days and there's some evidence that this has confused a few people. So let's take a closer look at what is available. Perl 5.14.1 This is the most advanced stable version of Perl 5 currently available. It was released on 17th June.
- [An Open Letter to Linux Format](https://perlhacks.com/2011/04/an-open-letter-to-linux-format/) - Back in September 2010 I wrote a piece criticising the way that Perl had been described in a recent issue of Linux Format. In a response to my article, the editor wrote: And, believe it or not, I do care about Perl. I met Paul Fenwick a few months ago, and he agreed to write
- [Perl Vogue T-Shirts](https://perlhacks.com/2011/03/perl-vogue-t-shirts/) - In Pisa I gave a lightning talk about Perl Vogue. People enjoyed it and for a while I thought that it might actually turn into a project. I won't though. It would just take far too much effort. And, besides, a couple of people have pointed out to be that the real Vogue are rather
- [Perl News](https://perlhacks.com/2011/03/perl-news/) - Remember use.perl? It's moth-balled now, but for years it provided two valuable services to the Perl community. Firstly it provided a hosted blog platform which many people used to write about many things - sometimes even Perl. Of course we now have blogs.perl.org which provides a very similar service. And secondly, it provided a place
- [Fedora and Centos CPAN RPMs](https://perlhacks.com/2011/03/fedora-and-centos-cpan-rpms/) - Today I've updated my spreadsheets of the CPAN modules that are available as RPMs from various repositories for Fedora and Centos. I see that in many cases the "official" repos are now more up to date than my own repo (which I originally set up because the official repos are sometimes out of date). This
- [Marketing Perl](https://perlhacks.com/2010/09/marketing-perl-1/) - Sometimes people ask me why Perl marketing is so important. This morning I came across an excellent example of the kind of thing that we're trying to counter. In the current issue of Linux Format, there's an article about building a Twitter client in the bash shell. It's written by Nick Veitch - who seems
- [Wordpress](https://perlhacks.com/2010/10/wordpress/) - This blog has, until now, run on Movable Type. I initially chose Movable Type when I set up my first self-hosted blog back in 2002. Back then Movable Type was the only real choice in this area and it had the bonus that it was written in Perl so I could hack on it if
- [Crufty Old Perl](https://perlhacks.com/2010/03/crufty-old-perl/) - It's eighteen months since I wrote "Why Corporates Hate Perl" and it's worth pointing out that the company I discussed in that article which was dropping Perl in favour of PHP and Java is still employing as many good Perl programmers as it can find. I talked in that article about some rather unsubtle social
- [Perl Books](https://perlhacks.com/2010/03/perl-books/) - Those of you who have been following my work for some time might remember that many years ago I took some interest in Perl books. I don't mean the kind of books that we all read (or, even write) with animals on the cover. I mean the kinds of terrible Perl books that at one
- [Ironman and XML::Feed](https://perlhacks.com/2010/04/ironman-and-xmlfeed/) - Sam Graham complains that since the Ironman feed switched to using Perlanet, the entries have been "mangled". By that he means that in some cases any HTML in feed entries is lost. I think they're running up against this bug in XML::Feed (which is one of the modules that Perlanet uses to process the feeds
- [Building RPMs from CPAN Distributions](https://perlhacks.com/2010/02/building-rpms-from-cpan-distributions/) - Regular readers will know that in the past I've shown some interest in building RPMs from CPAN distributions. It's been a while since I did much work in this area (although I do still release the occasional module to my RPM repository. Over the weekend I was at FOSDEM and I attended Gabor's talk on
- [Learning About Traits](https://perlhacks.com/2010/08/learning-about-traits/) - I've been teaching basic Moose in my training courses for several years now. And, as I've mentioned before, I've been slowly converting some of my CPAN modules to use Moose. But there are still bits of Moose that I haven't really needed to get to grips with. One such area is Moose's support for Traits.
- [Joining the Github Massive](https://perlhacks.com/2009/05/joining-the-github-massive/) - I got tired of hosting my own Subversion repostories and having to deal with setting up access for anyone who wanted to work on my CPAN code (ok, honestly, that was two people in the last five years!) So I've moved all of my CPAN modules (and a few other random bits and pieces to
- [YAPC Travel Plans](https://perlhacks.com/2009/05/yapc-travel-plans/) - On the offchance that anyone wants to travel at the same time, here are my travel plans for YAPC::Europe. Flying from Heathrow to Lisbon on BA502 on Friday 31st July. Leaving at 15:05 and arriving at 17:45. Staying in the Hotel Alif (possibly the least useful hotel web site that I've ever seen). Flying from
- [Forthcoming London.pm Meetings](https://perlhacks.com/2009/05/forthcoming-londonpm-meetings/) - Here's some advance notice of a couple of london.pm meetings. The next social meeting will be on Thursday June 4th at the Gunmakers. Social meetings are a chance for people to get together over a drink and talk about whatever takes their fancy (sometimes, that even includes Perl). There's also a tradition that the leader
- [Syntax Highlighting](https://perlhacks.com/2009/06/syntax-highlighting/) - One of the nice things about moving away from use.perl to your own site is that you can install whatever toys you want. I'll eventually get round to posting code on this blog. And when I do it would be nice if it had some nice syntax highlighting. I could, of course, write my own
- [CPAN Web Feeds](https://perlhacks.com/2009/06/cpan-web-feeds/) - I'm still thinking about adding stuff to this blog. I'd like to add some web feeds to the sidebar. In particular, I'd like a feed of my CPAN uploads. I don't expect it to be a particularly busy feed (although having such blatant evidence of my laziness might galvanise me into being a bit more
- [New CPAN Releases](https://perlhacks.com/2009/06/new-cpan-releases/) - I haven't been particularly prolific in releasing new versions of my CPAN modules recently. But over the last couple of days I finally got my act together and release new versions of three modules. Array::Compare Number::Fraction Perlanet In all three cases, I've fixed pretty obscure bugs, added minor functionality or fixed the documenation. There's nothing
- [Net::Twitter and Iranian Elections](https://perlhacks.com/2009/06/nettwitter-and-iranian-elections/) - Over the last few days I've seen a large number of tweets saying that the Perl module Net::Twitter is being used to post pro-government propaganda from Iran. If it's true, this is almost certainly a reaction to the large number of people who are using Twitter to get around the Iranian government's censorship. It's disappointing,
- [White Camels 2009](https://perlhacks.com/2009/07/white-camels-2009/) - At OSCON last night the winners of this year's White Camel awards were announced. Unless you were involved in the discussions to choose the winners or were at OSCON, you won't have known that as there has been no announcement on any of the usual Perl news sites. And TPF wonder why people complain that
- [Marketing Perl](https://perlhacks.com/2009/07/marketing-perl/) - People seem to be coming round to the idea that Perl needs better marketing. Both Ovid and Gabor have written some interesting blog posts recently. What Does the Outside of Perl Look Like? Defining the Marketing Problem Solutions Are Not Problems. Problems Are Problems Perception is Reality - we need a director of marketing Is
- [Perl Monks Passwords](https://perlhacks.com/2009/07/perl-monks-passwords/) - It seems that the Perl Monks database has been compromised through some kind of security hole on the server that hosts it. That would, of course, be bad enough. But it seems that the user passwords in that database were stored in plain text. So whoever got the database, got access to the passwords of
- [YAPC::Europe 2009](https://perlhacks.com/2009/08/yapceurope-2009/) - Today I travelled home from YAPC::Europe 2009 which was held in Lisbon. Readers of my other blog will know that I almost didn't get there at all. The return journey was far less stressful. On the weekend before the conference I gave a two-day "Introduction to Perl" course. We had six people on the course.
- [Moose or No Moose](https://perlhacks.com/2009/09/moose-or-no-moose/) - I've known about Moose for some time.The first time I talked about it in a training course was at the Teach-In back in the summer of 2007. It's been part of my training courses ever since. But even though I was telling people about Moose in my training courses, I wasn't really making use of
- [Perl Twitter Feed](https://perlhacks.com/2009/09/perl-twitter-feed/) - Last August, when I was writing my talk Proud to Use Perl for YAPC::Europe, I wanted to get a feel for what real people were actually saying about Perl. It's all very well claiming that people say Perl is dead, but I wanted to get some real quotations to use in the talk. I came
- [Greenwich Mean Time](https://perlhacks.com/2009/09/greenwich-mean-time/) - Some of you might already know that I run the nms project. We supply drop in replacements for the CGI programs from Matt's Script Archive in an attempt to raise the average quality of Perl on the web. Having my email address associated with a project like that brings me some... er... interesting mail. Here's
- [The Definitive Guide to Catalyst](https://perlhacks.com/2009/09/the-definitive-guide-to-catalyst/) - I've just published my review of "The Definitive Guide to Catalyst". I thought it was worth quoting the final paragraph here: The application development methods discussed by the authors of this book are the ones which will define good Perl development practice in the coming years. If you have any interest in how you should
- [Speaking and Training and Stuff](https://perlhacks.com/2009/09/speaking-and-training-and-stuff/) - I spent some time over the weekend adding events to the london.pm group on Facebook. If you're on face book, then joining the group is a good way to keep up to date with what london.pm is doing. But for the three of you who aren't on Facebook, here's a summary of what I added.
- [Building Web Sites with Perl](https://perlhacks.com/2009/09/building-web-sites-with-perl/) - Over on my other blog last night I wrote a piece about how building simple web sites has never been easier. I talked about how it's really simple to use something like Wordpress or Drupal to build a web site that will suit the needs of many organisations - charities, schools, organisations like that. You'll
- [A Subway Metaphor](https://perlhacks.com/2009/10/a-subway-metaphor/) - Many years ago I read a science fiction story which has always stayed with me - although I'm buggered if I can remember the title or the author. It was set in the not too distant future. Another new line was about to be opened on the New York City Subway [In the comments Rozallin
- [Speaking in Milton Keynes](https://perlhacks.com/2009/10/speaking-in-milton-keynes/) - Last Thursday I went to visit the nice people at Milton Keynes Perl Mongers. I think I've spoken at one of the technical meetings every year since they started holding them in 2006. I always enjoy speaking to MK.pm. They're a small and friendly group. And they always make me feel really welcome. This time
- [Learn Perl in London](https://perlhacks.com/2009/10/learn-perl-in-london/) - I'm astonished to realise that I hadn't already mentioned the three days of Perl training that I'm going to be running in central London next month. So please excuse a quick plug. The training is running from 24th - 26th November and there are three separate one-day courses covering beginner, intermediate and advanced topics. If
- [A Teaser](https://perlhacks.com/2009/11/a-teaser/) - It's coming up to ten days since my last post and if I don't post something soon my Iron Man status will drop back to paper. And we don't want that to happen, do we? But I don't have anything new to write about. My spare time recently has been largely taken up by preparing
- [Socialable Mongers](https://perlhacks.com/2009/11/socialable-mongers/) - One of the nice things about the Perl community is its friendliness. I've met up with Perl Mongers on three continents. It's easy, if you're going past a city you just look for local groups on the pm.org web site and drop them a mail. There are hundreds of cities in the world where I
- [London Perl Workshop](https://perlhacks.com/2009/11/london-perl-workshop/) - The London Perl Workshop is getting closer. It's on Saturday 5th December at the University of Westminster's Cavendish Street Campus (the same place it's been for the last few years). The schedule was announced a couple of days ago and, at always, it looks like a great line-up. I'm particularly pleased to see that Tatsuhiko
- [My Sekrit Project](https://perlhacks.com/2009/11/my-sekrit-project/) - It's quite possible that over the last year or so you've heard me muttering about a secret project that I've been working on. Well, this morning I can finally reveal what it is. Do you ever wish that the Perl community had a centralised blogging site where anyone could set up a blog for free?
- [Blogs.perl.org Problems](https://perlhacks.com/2009/11/blogsperlorg-problems/) - It's ten days since we announced blogs.perl.org and it still doesn't work properly. Our mistake was to launch it on a really underpowered server. It worked fine when there were half a dozen of us testing it out, but when the entire Perl community descended on it to take a look at the site (and
- [Perlanet Improvements](https://perlhacks.com/2009/12/perlanet-improvements/) - I can be a bit of a lazy open source author at times. I love it when someone improves my code and then just emails me patches. I love it even more now that I'm using Github so that people can just fork my code and send me pull requests. That happened over the weekend.
- [Important SpamAssassin Update](https://perlhacks.com/2010/01/import-spamassassin-up/) - Do you run SpamAssassin to remove spam from your mailbox? Have you noticed a fall in the amount of mail you've received in the last couple of days? I mean all mail, not just spam. You might well be falling foul of this problem. The rules in the latest version of SpamAssassin available from CPAN
- [Market Research](https://perlhacks.com/2010/01/market-research/) - I hope no-one minds if I use this post to do a quick bit of market research.I'm planning to run some more public Perl training courses in April. Until now when I've run these courses, they have been pretty generic beginners, intermediate and advanced courses. But now I'm thinking that it might be interesting to
- [Perl Web Server](https://perlhacks.com/2010/01/perl-web-server/) - Coming a little late to this game, but I understand there are some concerns in the Perl community that the phrase "Perl Web Server" doesn't find the best site when you search for it in Google. I'm happy to add my vote that "Perl Web Server" should point at the Plack web site.
- [Cultured Perl Blog](https://perlhacks.com/2010/02/cultured-perl-blog/) - A couple of years ago I thought that one thing the Perl community was missing was a network of blog sites about Perl. I'm not talking about the individual blogs that are being shown off to such good effect by the Iron Man project, I'm talking about a set of multi-author blogs that covered particular
- [Useful RPM Stuff](https://perlhacks.com/2010/02/useful-rpm-stuff/) - I forgot to mention this yesterday. I've set up a github project (see http://github.com/davorg/rpm_stuff) where I'll dump bits and pieces that I'm writing to make my RPM-building life easier. The first utility I've uploaded there is called can_rpmbuild. You pass it an RPM spec file and it tells you which of the dependencies are available
- [META.yml and Building RPMs](https://perlhacks.com/2010/02/metayml-and-building-rpms/) - An email has flooded in. It was in response to my piece about Building RPMs from CPAN Distributions and it was from Andreas Koenig. Andreas runs PAUSE, which is the service CPAN authors use to upload stuff to CPAN, so he knows what he's talking about when it comes to CPAN (and many other matters).
- [Plug Plug Plug](https://perlhacks.com/2010/03/plug-plug-plug/) - I've got another set of public training courses coming up next month. They will be held at the Imperial Hotel in Russell Square, London. There are three one-day courses - Introduction to Perl, Intermediate Perl and Advance Perl. They're running on the 13th, 14th and 15th of April. More details on my training web site.
- [Training in Pisa](https://perlhacks.com/2010/03/training-in-pisa/) - The YAPC::Europe organisers have put out a call for training courses. They want a number of courses to offer to attendees in the couple of days before the conference. The call closed yesterday and I expect they'll be announcing the courses in a couple of weeks. I've given training courses at the last couple of
- [Training Update](https://perlhacks.com/2010/04/training-update/) - The training courses for this summer's YAPC in Pisa have been announced. And my course on Modern Perl has been chosen. It's a one-day course on August 2th (just before the conference). It costs € 180. You'll be able to book once the payments system on the conference web site goes live. Here's the description
- [More RPM Stuff](https://perlhacks.com/2010/04/more-rpm-stuff/) - It's been a while since I wrote anything here. if anyone is keeping score I've probably failed the Iron Man challenge of posting something every ten days. Don't have much to add here either but I thought some of you might be interested in a quick tweak I made to my spreadsheet of CPAN RPMs
- [How Not to Ask a Question](https://perlhacks.com/2010/06/how-not-to-ask-a-question/) - I received this email last week. I often get random email from people I don't know asking for help with Perl problems and I'm happy to help whenever I can (although I always point our that Perl Monks is going to get better answers in less time). But if you're going to ask random strangers
- [YAPC::Europe Talks](https://perlhacks.com/2010/06/yapceurope-talks/) - The Call for Papers for YAPC::Europe closes in four days. If you're thinking of giving a talk in Pisa then this weekend would be a very good time to give it some serious thought. I proposed four talks last night. I'm hoping that the organisers won't choose more than two of them, but I like
- [YAPC::Europe Talks Accepted](https://perlhacks.com/2010/06/yapceurope-talks-accepted/) - The YAPC::Europe organisers said that they would tell speakers which talks had been accepted on July 1st. Well, it seems that the excitement was too much for them and they decided to do it a week earlier. Yesterday I got email telling me that some of my talks had been accepted and the list of
- [FOSDEM](https://perlhacks.com/2010/02/fosdem/) - This weekend is the annual FOSDEM conference in Brussels. I really enjoy FOSDEM but, for reasons I don't really understand, this will be the first time I've been since 2005. It will also be one of the rare occasions where I attend a conference without giving a talk - the organisers turned down my proposed
- [Send-a-Newbie](https://perlhacks.com/2009/07/send-a-newbie/) - The Send-a-Newbie project is the Perl community at its best. People with a bit of spare money have donated to a fund to send people to YAPC::Europe. Edmund von der Burg and a team of trusted helpers have counted the money and closely examined the applications that they received. Edmund writes: First, a quick recap:

## Pages

- [Other Perl Hacks Sites](https://perlhacks.com/other-perl-hacks-sites/) - There are several other sites under the Perl Hacks domain. You may find some of them useful. Perl community sites Perl on TIOBE - Tracking Perl's positiion in the TIOBE Index Perl Steering Committee Meeting Reports - Links to the weekly reports from the Perl Steering Committee. Stay up to date with what's going on
- [Perl Taster](https://perlhacks.com/perl-taster/) - This article was written for Udemy in 2015 when they were publishing a series of blog posts, each of which was a very basic introduction to a programming language. I was pleased with the content, so I started to link to it on their site from various places. Whenever anyone asked for a really basic
- [Adding to Our Web App](https://perlhacks.com/articles/modern-perl-programming/adding-to-our-web-app/) - In our previous article, we added a web front end to our reading list program. But this interface only displayed the contents of our database, we still needed to use the command line program to change the data. In this article, we'll fix that by adding interactivity to our web application. By the end of
- [A Simple Web App](https://perlhacks.com/articles/modern-perl-programming/a-simple-web-app/) - In last month's article, we built a simple command line program to manage a reading list. We could add books to the list and note when we started and finished reading them. At any time the program would display a list of books that we were reading, that we had read and that were still
- [Database Access with DBIx::Class](https://perlhacks.com/articles/modern-perl-programming/database-access-with-dbixclass/) - In this article we will build a simple command line program that accesses a database. The program we are going to write will keep track of a reading list. We'll tell it about the books that we're reading or about to read and it will display that information in various lists. Next month we'll make
- [CGI Programming Part 3](https://perlhacks.com/articles/cgi-programming/cgi-programming-part-3/) - Despite valiant attempts by the marketing departments of Microsoft and Sun, CGI is still the most commonly used architecture for creating dynamic content on the World Wide Web. In this series of tutorials we'll look at how to write CGI programs. The third tutorial in the series looks at some more advanced topics in CGI
- [CGI Programming Part 2](https://perlhacks.com/articles/cgi-programming/cgi-programming-part-2/) - Despite valiant attempts by the marketing departments of Microsoft and Sun, CGI is still the most commonly used architecture for creating dynamic content on the World Wide Web. In this series of tutorials we'll look at how to write CGI programs. The second tutorial in the series looks at some of the security issues in
- [CGI Programming Part 1](https://perlhacks.com/articles/cgi-programming/cgi-programming-part-1/) - Despite valiant attempts by the marketing departments of Microsoft and Sun, CGI is still the most commonly used architecture for creating dynamic content on the World Wide Web. In this series of tutorials we'll look at how to write CGI programs. This first tutorial looks at the basics of CGI programming. This article was originally
- [Cookie Policy (UK)](https://perlhacks.com/cookie-policy-uk/)
- [Symbol::Approx::Sub](https://perlhacks.com/articles/symbolapproxsub/) - You can do some really stupid things with Perl if you put your mind to it. In this article, Dave Cross explains why and how he wrote one of the most pointless modules on CPAN. This article originally appeared in issue #20 of The Perl Journal. A version of this article also appeared in Games, Diversions &
- [Introducing the Template Toolkit - Part 3](https://perlhacks.com/articles/template-toolkit/introducing-the-template-toolkit-part-3/) - In this beginner level article, Dave Cross looks at using the Template Toolkit from Perl.This article was originally published in Linux Format in June 2004. Over the last couple of months we have been looking at using the Template Toolkit from the command line using the utilities "tpage" and "ttree". None of the examples that we have
- [Contact](https://perlhacks.com/about/contact/) - Loading... If you're getting in touch to sell me SEO or web design services or anything like that - then please don't waste your (or my!) time.
- [Introducing the Template Toolkit - Part 2](https://perlhacks.com/articles/template-toolkit/introducing-the-template-toolkit-part-2/) - In this beginner level article, Dave Cross look at the the Template Toolkit in a bit more detail. This article was originally published in Linux Format in May 2004. Last month we were processing one template at a time using 'tpage'. Often you will want to process a set of associated templates at the same time. The
- [Perl Vogue](https://perlhacks.com/perl-vogue/) - At YAPC::Europe in Pisa I gave this lightning talk which gently took the piss out of the way that the Perl community can sometimes be a little disparaging of people who aren't using the most fashionable modules from CPAN. https://youtu.be/WquECQnnCq4 And here's a closer look at the cover mock-up.
- [Perl Documentation Overview](https://perlhacks.com/articles/rtfm/perl-documentation-overview/) - Many people are discovering that the scripting language Perl is the most useful language for getting many computing tasks done. In the last of his articles for Perlmonth Dave Cross takes a brief overview of Perl documentation. This article first appeared in the January 2000 issue of the online Perl magazine PerlMonth (which no longer seems
- [Perl Mailing Lists](https://perlhacks.com/articles/rtfm/perl-mailing-lists/) - Many people are discovering that the scripting language Perl is the most useful language for getting many computing tasks done. In this article Dave Cross takes a brief look at Perl Mailing Lists. This article first appeared in the December 1999 issue of the online Perl magazine PerlMonth (which no longer seems to be online). Note:
- [Perl Websites](https://perlhacks.com/articles/rtfm/perl-websites/) - Many people are discovering that the scripting language Perl is the most useful language for getting many computing tasks done. In this article Dave Cross takes a brief look at Perl websites. This article first appeared in the November 1999 issue of the online Perl magazine PerlMonth (which no longer seems to be online). Note:
- [Perl Newsgroups](https://perlhacks.com/articles/rtfm/perl-newsgroups/) - Many people are discovering that the scripting language Perl is the most useful language for getting many computing tasks done. In this article Dave Cross takes a brief look at Perl newsgroups. This article first appeared in the October 1999 issue of the online Perl magazine PerlMonth (which no longer seems to be online). Note: All
- [Non-Free Perl Documentation](https://perlhacks.com/articles/rtfm/non-free-perl-documentation/) - Many people are discovering that the scripting language Perl is the most useful language for getting many computing tasks done. In this article Dave Cross takes a brief look at some Perl books. This article first appeared in the August 1999 issue of the online Perl magazine PerlMonth (which no longer seems to be online).
- [Writing Plain Old Documentation](https://perlhacks.com/articles/rtfm/writing-plain-old-documentation/) - Many people are discovering that the scripting language Perl is the most useful language for getting many computing tasks done. Many of them fail to discover the vast amount of documentation that comes with the language. In the third of his articles about "probably the best set of free documentation for any software currently available",
- [Modules, References, Data Structures and Objects](https://perlhacks.com/articles/rtfm/modules-references-data-structures-and-objects/) - Many people are discovering that the scripting language Perl is the most useful language for getting many computing tasks done. Many of them fail to discover the vast amount of documentation that comes with the language. In the second of his articles about "probably the best set of free documentation for any software currently available",
- [An Introduction to the Perl Documentation](https://perlhacks.com/articles/rtfm/an-introduction-to-the-perl-documentation/) - Many people are discovering that the scripting language Perl is the most useful language for getting many computing tasks done. Many of them fail to discover the vast amount of documentation that comes with the language. In this article Dave Cross takes an overview of "probably the best set of free documentation for any software
- [RTFM](https://perlhacks.com/articles/rtfm/) - A series of articles that I wrote about Perl documentation for PerlMonth (which no longer seems to be online). Note: All of the articles in the RTFM series are really old. It's likely that many of the links no longer work. I'm leaving these articles online for historical reasons, but these days you should visit
- [About](https://perlhacks.com/about/) - Hi, I'm Dave Cross and I'm a Perl hacker. I've been using Perl since 1996. In 1998 I started the London Perl Mongers, the first Perl User Group outside of North America. I've been heavily involved in the Perl community ever since. I'm the author of Data Munging with Perl and a co-author of Perl Template
- [CGI Programming](https://perlhacks.com/articles/cgi-programming/) - A series of three articles about CGI programming that I wrote for Linux Format in 2001. Please note that these tutorials are only left here for historical interest. If you are writing new web applications with Perl these days, you should be considering something based on PSGI and Plack or even something using raw PSGI.
- [Calendar](https://perlhacks.com/calendar/) - Some upcoming Perl events.
- [Changing Hash Behaviour With Tie](https://perlhacks.com/articles/perl-com/changing-hash-behaviour-with-tie/) - Perl has the ability to hide complex objects behind simple-looking variable types. In this article, Dave Cross looks at how this is achieved.This article was originally the lead article on perl.com in September 2001. Introduction In my experience, hashes are just about the most useful built-in datatype that Perl has. They are useful for so
- [Overloading Perl Objects](https://perlhacks.com/articles/perl-com/overloading-perl-objects/) - In this article Dave Cross looks at a very powerful (but underused) area of Perl.This article was originally the lead article on perl.com in July 2003. 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
- [Modern Perl Programming](https://perlhacks.com/articles/modern-perl-programming/) - In 2011 I wrote a series of three articles about Modern Perl programming for Linux Format. They concentrated on DBIx::Class and Dancer.
- [Perl Club](https://perlhacks.com/perl-club/) - The Rules of Perl Club The First Rule of Perl Club You do not talk about Perl Club The Second Rule of Perl Club You do not talk about Perl Club Third Rule of Perl Club A laptop crashes, breaks, runs down. The hack is over Fourth Rule of Perl Club Only two programmers to
- [Creating Data Output Files with the Template Toolkit](https://perlhacks.com/articles/perl-com/creating-data-output-files-with-the-template-toolkit/) - The Template Toolkit is one of the most powerful Perl tools for the creation of data that is a mixture of fixed and variable content. This obviously makes it very suitable for the production of web pages. In this article Dave Cross looks at its wider potential for creating output data files. This article was
- [Perl Command Line Options](https://perlhacks.com/articles/perl-com/perl-command-line-options/) - In this beginner level article, Dave Cross looks at some of Perl's command line options.This article was originally the lead article on perl.com in August 2004. 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.
- [Perl's Special Variables](https://perlhacks.com/articles/perl-com/perls-special-variables/) - In this beginner level article, Dave Cross looks at some of Perl's internal variables. This article was originally the lead article on perl.com in June 2004. 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
- [Introducing the Template Toolkit - Part 1](https://perlhacks.com/articles/template-toolkit/introducing-the-template-toolkit-part-1/) - In this beginner level article, Dave Cross introduces the Template Toolkit. This article was originally published in Linux Format in April 2004. Template processing is a method of producing output that takes some fixed (or boilerplate) text and puts variable data values inside it. The most obvious example is that of a form letter. When you get
- [Template Toolkit](https://perlhacks.com/articles/template-toolkit/) - A series of articles about the Template Toolkit written for Linux Format in 2004.
- [How We Wrote The Template Toolkit Book Using Template Toolkit](https://perlhacks.com/articles/perl-com/how-we-wrote-the-template-toolkit-book-using-template-toolkit/) - Dave Cross explains how Perl Template Toolkit was written with a large amount of help from the Template Toolkit This article was originally the lead article on perl.com in January 2004. There are a number of tools available for writing books. Many people would immediately reach for their favourite word processor, but having written one
- [Finding CGI Scripts](https://perlhacks.com/articles/perl-com/finding-cgi-scripts/) - Many people's first experience of Perl comes when they download a free CGI script from the web. In this article Dave Cross discusses why that might be a bad way to start. This article was originally the lead article on perl.com in January 2002. Introduction No matter how much we try to convince people that
- [perl.com](https://perlhacks.com/articles/perl-com/) - Some articles that were originally published on perl.com.
- [Articles](https://perlhacks.com/articles/) - Here are some of the articles I've written about Perl.
- [Talks](https://perlhacks.com/talks/) - This page will contain details of various talks I have given. Combining these talks from various places will be a work in progress for some time. Please bear with me. 2012 London Perl Workshop A two-hour long introduction to Object Oriented Programming with Moose. It also (conveniently) served as a taster for Perl School 3.
- [Perl Search](https://perlhacks.com/search/) - This is a specialised Perl search engine which only searches trusted Perl web sites. If you want to use this search engine on your web site, you can get the code from here. Loading

## Calendars

- [Upcoming Perl Events](https://perlhacks.com/calendar/upcoming-perl-events-2/) - [title] [when] [location] [description] [link newwindow="yes"]See more details[/link]

## Categories

- [Miscellaneous](https://perlhacks.com/category/misc/)
- [Admin](https://perlhacks.com/category/admin/)
- [CPAN](https://perlhacks.com/category/cpan/)
- [Conferences](https://perlhacks.com/category/conferences/)
- [Community](https://perlhacks.com/category/community/)
- [Programming](https://perlhacks.com/category/programming/)
- [Weirdness](https://perlhacks.com/category/weirdness/)
- [Books](https://perlhacks.com/category/books/)
- [Speaking](https://perlhacks.com/category/speaking/)
- [Training](https://perlhacks.com/category/training/)
- [Marketing](https://perlhacks.com/category/marketing/)
- [Articles](https://perlhacks.com/category/articles/)
- [Packaging](https://perlhacks.com/category/packaging/)
- [Perl](https://perlhacks.com/category/perl/)
- [Web](https://perlhacks.com/category/web/)

## Tags

- [training](https://perlhacks.com/tag/training-2/)
- [2010](https://perlhacks.com/tag/2010/)
- [april](https://perlhacks.com/tag/april/)
- [market research](https://perlhacks.com/tag/market-research/)
- [blog](https://perlhacks.com/tag/blog/)
- [domain](https://perlhacks.com/tag/domain/)
- [perl](https://perlhacks.com/tag/perl/)
- [perlhacks](https://perlhacks.com/tag/perlhacks/)
- [cpan](https://perlhacks.com/tag/cpan-2/)
- [git](https://perlhacks.com/tag/git/)
- [github](https://perlhacks.com/tag/github/)
- [modules](https://perlhacks.com/tag/modules/)
- [sourcecode](https://perlhacks.com/tag/sourcecode/)
- [conferences](https://perlhacks.com/tag/conferences-2/)
- [lisbon](https://perlhacks.com/tag/lisbon/)
- [travel](https://perlhacks.com/tag/travel/)
- [yacpeu09](https://perlhacks.com/tag/yacpeu09/)
- [yapc](https://perlhacks.com/tag/yapc/)
- [bcs](https://perlhacks.com/tag/bcs/)
- [community](https://perlhacks.com/tag/community-2/)
- [gunmakers](https://perlhacks.com/tag/gunmakers/)
- [london.pm](https://perlhacks.com/tag/london-pm/)
- [meetings](https://perlhacks.com/tag/meetings/)
- [perlmongers](https://perlhacks.com/tag/perlmongers/)
- [social](https://perlhacks.com/tag/social/)
- [speaking](https://perlhacks.com/tag/speaking-2/)
- [yapceurope](https://perlhacks.com/tag/yapceurope/)
- [highlighting](https://perlhacks.com/tag/highlighting/)
- [movable type](https://perlhacks.com/tag/movable-type/)
- [mt](https://perlhacks.com/tag/mt/)
- [plugins](https://perlhacks.com/tag/plugins/)
- [syntax](https://perlhacks.com/tag/syntax/)
- [code](https://perlhacks.com/tag/code/)
- [rss](https://perlhacks.com/tag/rss/)
- [web feeds](https://perlhacks.com/tag/web-feeds/)
- [programming](https://perlhacks.com/tag/programming-2/)
- [prototypes](https://perlhacks.com/tag/prototypes/)
- [subroutines](https://perlhacks.com/tag/subroutines/)
- [array-compare](https://perlhacks.com/tag/array-compare/)
- [number-fraction](https://perlhacks.com/tag/number-fraction/)
- [perlanet](https://perlhacks.com/tag/perlanet/)
- [releases](https://perlhacks.com/tag/releases/)
- [iran](https://perlhacks.com/tag/iran/)
- [net::twitter](https://perlhacks.com/tag/nettwitter/)
- [twitter](https://perlhacks.com/tag/twitter/)
- [sendanewbie](https://perlhacks.com/tag/sendanewbie/)
- [tpf](https://perlhacks.com/tag/tpf/)
- [whitecamel](https://perlhacks.com/tag/whitecamel/)
- [bof](https://perlhacks.com/tag/bof/)
- [marketing](https://perlhacks.com/tag/marketing-2/)
- [passwords](https://perlhacks.com/tag/passwords/)
- [perlmonks](https://perlhacks.com/tag/perlmonks/)
- [security](https://perlhacks.com/tag/security/)
- [moose](https://perlhacks.com/tag/moose/)
- [oop](https://perlhacks.com/tag/oop/)
- [email](https://perlhacks.com/tag/email/)
- [gmt](https://perlhacks.com/tag/gmt/)
- [idiocy](https://perlhacks.com/tag/idiocy/)
- [nms](https://perlhacks.com/tag/nms/)
- [book](https://perlhacks.com/tag/book/)
- [catalyst](https://perlhacks.com/tag/catalyst/)
- [review](https://perlhacks.com/tag/review/)
- [lpw](https://perlhacks.com/tag/lpw/)
- [miltonkeynes.pm](https://perlhacks.com/tag/miltonkeynes-pm/)
- [cms](https://perlhacks.com/tag/cms/)
- [drupal](https://perlhacks.com/tag/drupal/)
- [melody](https://perlhacks.com/tag/melody/)
- [php](https://perlhacks.com/tag/php/)
- [web](https://perlhacks.com/tag/web/)
- [wordpress](https://perlhacks.com/tag/wordpress/)
- [kappa](https://perlhacks.com/tag/kappa/)
- [russian](https://perlhacks.com/tag/russian/)
- [complexity](https://perlhacks.com/tag/complexity/)
- [nyc](https://perlhacks.com/tag/nyc/)
- [scifi](https://perlhacks.com/tag/scifi/)
- [subway](https://perlhacks.com/tag/subway/)
- [london](https://perlhacks.com/tag/london/)
- [teaser](https://perlhacks.com/tag/teaser/)
- [edinburgh.pm](https://perlhacks.com/tag/edinburgh-pm/)
- [blogging](https://perlhacks.com/tag/blogging/)
- [blogs](https://perlhacks.com/tag/blogs/)
- [blogs.perl.org](https://perlhacks.com/tag/blogs-perl-org/)
- [six apart](https://perlhacks.com/tag/six-apart/)
- [problems](https://perlhacks.com/tag/problems/)
- [keynote](https://perlhacks.com/tag/keynote/)
- [lpw2009](https://perlhacks.com/tag/lpw2009/)
- [bleeding edge](https://perlhacks.com/tag/bleeding-edge/)
- [nwe.pm](https://perlhacks.com/tag/nwe-pm/)
- [thanks](https://perlhacks.com/tag/thanks/)
- [spamassassin](https://perlhacks.com/tag/spamassassin/)
- [perl web server](https://perlhacks.com/tag/perl-web-server/)
- [plack](https://perlhacks.com/tag/plack/)
- [seo](https://perlhacks.com/tag/seo/)
- [fosdem](https://perlhacks.com/tag/fosdem/)
- [linux](https://perlhacks.com/tag/linux/)
- [padre](https://perlhacks.com/tag/padre/)
- [perl culture](https://perlhacks.com/tag/perl-culture/)
- [rpm](https://perlhacks.com/tag/rpm/)
- [utilities](https://perlhacks.com/tag/utilities/)
- [fedora](https://perlhacks.com/tag/fedora/)
- [frameworks](https://perlhacks.com/tag/frameworks/)
- [legacy code](https://perlhacks.com/tag/legacy-code/)
- [rewrites](https://perlhacks.com/tag/rewrites/)
- [modern perl](https://perlhacks.com/tag/modern-perl/)
- [pisa](https://perlhacks.com/tag/pisa/)
- [books](https://perlhacks.com/tag/books-2/)
- [foyles](https://perlhacks.com/tag/foyles/)
- [perl books](https://perlhacks.com/tag/perl-books/)
- [yapceu10](https://perlhacks.com/tag/yapceu10/)
- [ironman](https://perlhacks.com/tag/ironman/)
- [xml::feed](https://perlhacks.com/tag/xmlfeed/)
- [support](https://perlhacks.com/tag/support/)
- [mvc](https://perlhacks.com/tag/mvc/)
- [etiquette](https://perlhacks.com/tag/etiquette/)
- [talks](https://perlhacks.com/tag/talks/)
- [opentech](https://perlhacks.com/tag/opentech/)
- [fashion](https://perlhacks.com/tag/fashion/)
- [perl vogue](https://perlhacks.com/tag/perl-vogue/)
- [traits](https://perlhacks.com/tag/traits/)
- [songkick](https://perlhacks.com/tag/songkick/)
- [gigs](https://perlhacks.com/tag/gigs/)
- [net::songkick](https://perlhacks.com/tag/netsongkick/)
- [cgi](https://perlhacks.com/tag/cgi/)
- [linux format](https://perlhacks.com/tag/linux-format/)
- [admin](https://perlhacks.com/tag/admin-2/)
- [wp](https://perlhacks.com/tag/wp/)
- [mk.pm](https://perlhacks.com/tag/mk-pm/)
- [milton keynes](https://perlhacks.com/tag/milton-keynes/)
- [roles](https://perlhacks.com/tag/roles/)
- [lpw2010](https://perlhacks.com/tag/lpw2010/)
- [psgi](https://perlhacks.com/tag/psgi/)
- [workshop](https://perlhacks.com/tag/workshop/)
- [context](https://perlhacks.com/tag/context/)
- [londonpm](https://perlhacks.com/tag/londonpm/)
- [techmeet](https://perlhacks.com/tag/techmeet/)
- [jobs](https://perlhacks.com/tag/jobs/)
- [centos](https://perlhacks.com/tag/centos/)
- [news](https://perlhacks.com/tag/news/)
- [vogue](https://perlhacks.com/tag/vogue/)
- [tshirts](https://perlhacks.com/tag/tshirts/)
- [domains](https://perlhacks.com/tag/domains/)
- [proud to use perl](https://perlhacks.com/tag/proud-to-use-perl/)
- [perlfive](https://perlhacks.com/tag/perlfive/)
- [versions](https://perlhacks.com/tag/versions/)
- [5.12.4](https://perlhacks.com/tag/5-12-4/)
- [5.14.1](https://perlhacks.com/tag/5-14-1/)
- [5.15.0](https://perlhacks.com/tag/5-15-0/)
- [riga](https://perlhacks.com/tag/riga/)
- [yapceu11](https://perlhacks.com/tag/yapceu11/)
- [web sites](https://perlhacks.com/tag/web-sites/)
- [josette garcia](https://perlhacks.com/tag/josette-garcia/)
- [josetteorama](https://perlhacks.com/tag/josetteorama/)
- [oreilly](https://perlhacks.com/tag/oreilly/)
- [articles](https://perlhacks.com/tag/articles-2/)
- [writing](https://perlhacks.com/tag/writing/)
- [lxf](https://perlhacks.com/tag/lxf/)
- [dbic](https://perlhacks.com/tag/dbic/)
- [search](https://perlhacks.com/tag/search/)
- [google](https://perlhacks.com/tag/google/)
- [tutorial](https://perlhacks.com/tag/tutorial/)
- [learning](https://perlhacks.com/tag/learning/)
- [lpw2011](https://perlhacks.com/tag/lpw2011/)
- [modern core perl](https://perlhacks.com/tag/modern-core-perl/)
- [london perl workshop](https://perlhacks.com/tag/london-perl-workshop/)
- [saint pierre and miquelon](https://perlhacks.com/tag/saint-pierre-and-miquelon/)
- [.pm](https://perlhacks.com/tag/pm/)
- [perl mongers](https://perlhacks.com/tag/perl-mongers/)
- [cctld](https://perlhacks.com/tag/cctld/)
- [afnic](https://perlhacks.com/tag/afnic/)
- [imdb](https://perlhacks.com/tag/imdb/)
- [dancer](https://perlhacks.com/tag/dancer/)
- [magazines](https://perlhacks.com/tag/magazines/)
- [public courses](https://perlhacks.com/tag/public-courses/)
- [intermediate](https://perlhacks.com/tag/intermediate/)
- [advanced](https://perlhacks.com/tag/advanced/)
- [february](https://perlhacks.com/tag/february/)
- [2012](https://perlhacks.com/tag/2012/)
- [perl masons](https://perlhacks.com/tag/perl-masons/)
- [public](https://perlhacks.com/tag/public/)
- [free](https://perlhacks.com/tag/free/)
- [competition](https://perlhacks.com/tag/competition/)
- [mysql](https://perlhacks.com/tag/mysql/)
- [beginners](https://perlhacks.com/tag/beginners/)
- [helping](https://perlhacks.com/tag/helping/)
- [xml-feed](https://perlhacks.com/tag/xml-feed/)
- [best practice](https://perlhacks.com/tag/best-practice/)
- [job advert](https://perlhacks.com/tag/job-advert/)
- [version control](https://perlhacks.com/tag/version-control/)
- [reverse](https://perlhacks.com/tag/reverse/)
- [perlschool](https://perlhacks.com/tag/perlschool/)
- [programming perl](https://perlhacks.com/tag/programming-perl/)
- [camel](https://perlhacks.com/tag/camel/)
- [google current](https://perlhacks.com/tag/google-current/)
- [ios](https://perlhacks.com/tag/ios/)
- [android](https://perlhacks.com/tag/android/)
- [perl school](https://perlhacks.com/tag/perl-school/)
- [cgi.pm](https://perlhacks.com/tag/cgi-pm/)
- [html](https://perlhacks.com/tag/html/)
- [templates](https://perlhacks.com/tag/templates/)
- [perl-core](https://perlhacks.com/tag/perl-core/)
- [object oriented perl](https://perlhacks.com/tag/object-oriented-perl/)
- [bad perl](https://perlhacks.com/tag/bad-perl/)
- [dbix::class](https://perlhacks.com/tag/dbixclass/)
- [dbi](https://perlhacks.com/tag/dbi/)
- [databases](https://perlhacks.com/tag/databases/)
- [sql](https://perlhacks.com/tag/sql/)
- [lpw2012](https://perlhacks.com/tag/lpw2012/)
- [history](https://perlhacks.com/tag/history/)
- [25 years](https://perlhacks.com/tag/25-years/)
- [unicode](https://perlhacks.com/tag/unicode/)
- [net-a-porter](https://perlhacks.com/tag/net-a-porter/)
- [schedule](https://perlhacks.com/tag/schedule/)
- [corporates](https://perlhacks.com/tag/corporates/)
- [flossuk](https://perlhacks.com/tag/flossuk/)
- [manchester](https://perlhacks.com/tag/manchester/)
- [metacpan](https://perlhacks.com/tag/metacpan/)
- [javascript](https://perlhacks.com/tag/javascript/)
- [greasemonkey](https://perlhacks.com/tag/greasemonkey/)
- [linkedin](https://perlhacks.com/tag/linkedin/)
- [perl. programming](https://perlhacks.com/tag/perl-programming/)
- [texinfo](https://perlhacks.com/tag/texinfo/)
- [perl.com](https://perlhacks.com/tag/perl-com/)
- [features](https://perlhacks.com/tag/features/)
- [core](https://perlhacks.com/tag/core/)
- [module::build](https://perlhacks.com/tag/modulebuild/)
- [pebble](https://perlhacks.com/tag/pebble/)
- [smartwatch](https://perlhacks.com/tag/smartwatch/)
- [pushover](https://perlhacks.com/tag/pushover/)
- [politics](https://perlhacks.com/tag/politics/)
- [the political web](https://perlhacks.com/tag/the-political-web/)
- [ye2013](https://perlhacks.com/tag/ye2013/)
- [yapc europe](https://perlhacks.com/tag/yapc-europe/)
- [kiev](https://perlhacks.com/tag/kiev/)
- [perl news](https://perlhacks.com/tag/perl-news/)
- [utf8](https://perlhacks.com/tag/utf8/)
- [red hat](https://perlhacks.com/tag/red-hat/)
- [perl 5](https://perlhacks.com/tag/perl-5/)
- [perl 6](https://perlhacks.com/tag/perl-6/)
- [yapceu13](https://perlhacks.com/tag/yapceu13/)
- [google custom search](https://perlhacks.com/tag/google-custom-search/)
- [banks](https://perlhacks.com/tag/banks/)
- [internet of things](https://perlhacks.com/tag/internet-of-things/)
- [perl one-liners](https://perlhacks.com/tag/perl-one-liners/)
- [misconception](https://perlhacks.com/tag/misconception/)
- [misunderstanding](https://perlhacks.com/tag/misunderstanding/)
- [api](https://perlhacks.com/tag/api/)
- [dot](https://perlhacks.com/tag/dot/)
- [operators](https://perlhacks.com/tag/operators/)
- [concatenation](https://perlhacks.com/tag/concatenation/)
- [range](https://perlhacks.com/tag/range/)
- [flip-flip](https://perlhacks.com/tag/flip-flip/)
- [yada-yada](https://perlhacks.com/tag/yada-yada/)
- [hacked](https://perlhacks.com/tag/hacked/)
- [yum](https://perlhacks.com/tag/yum/)
- [apt-get](https://perlhacks.com/tag/apt-get/)
- [installation](https://perlhacks.com/tag/installation/)
- [data munging with perl](https://perlhacks.com/tag/data-munging-with-perl/)
- [download](https://perlhacks.com/tag/download/)
- [2014](https://perlhacks.com/tag/2014/)
- [november](https://perlhacks.com/tag/november/)
- [hackday](https://perlhacks.com/tag/hackday/)
- [technical meeting](https://perlhacks.com/tag/technical-meeting/)
- [travis-ci](https://perlhacks.com/tag/travis-ci/)
- [continuous integration](https://perlhacks.com/tag/continuous-integration/)
- [languages](https://perlhacks.com/tag/languages/)
- [silicon milkroundabout](https://perlhacks.com/tag/silicon-milkroundabout/)
- [usage](https://perlhacks.com/tag/usage/)
- [floss uk](https://perlhacks.com/tag/floss-uk/)
- [lpw2014](https://perlhacks.com/tag/lpw2014/)
- [iot](https://perlhacks.com/tag/iot/)
- [perl web book](https://perlhacks.com/tag/perl-web-book/)
- [recruitment](https://perlhacks.com/tag/recruitment/)
- [sponsorship](https://perlhacks.com/tag/sponsorship/)
- [devassistant](https://perlhacks.com/tag/devassistant/)
- [slideshare](https://perlhacks.com/tag/slideshare/)
- [mailing list](https://perlhacks.com/tag/mailing-list/)
- [penetration testing](https://perlhacks.com/tag/penetration-testing/)
- [packt](https://perlhacks.com/tag/packt/)
- [penetration testing with perl](https://perlhacks.com/tag/penetration-testing-with-perl/)
- [programming. modern perl](https://perlhacks.com/tag/programming-modern-perl/)
- [ampersand](https://perlhacks.com/tag/ampersand/)
- [subroutine](https://perlhacks.com/tag/subroutine/)
- [yapceu15](https://perlhacks.com/tag/yapceu15/)
- [built in perl](https://perlhacks.com/tag/built-in-perl/)
- [twittelection](https://perlhacks.com/tag/twittelection/)
- [mailing lists](https://perlhacks.com/tag/mailing-lists/)
- [invoice](https://perlhacks.com/tag/invoice/)
- [magnum solutions](https://perlhacks.com/tag/magnum-solutions/)
- [udemy beginners](https://perlhacks.com/tag/udemy-beginners/)
- [yapceu](https://perlhacks.com/tag/yapceu/)
- [yapceu2015](https://perlhacks.com/tag/yapceu2015/)
- [granada](https://perlhacks.com/tag/granada/)
- [spain](https://perlhacks.com/tag/spain/)
- [dbix-class](https://perlhacks.com/tag/dbix-class/)
- [prefetch](https://perlhacks.com/tag/prefetch/)
- [performance](https://perlhacks.com/tag/performance/)
- [optimisation](https://perlhacks.com/tag/optimisation/)
- [rpmbuild](https://perlhacks.com/tag/rpmbuild/)
- [cpanspec](https://perlhacks.com/tag/cpanspec/)
- [training. london](https://perlhacks.com/tag/training-london/)
- [testing](https://perlhacks.com/tag/testing/)
- [web development](https://perlhacks.com/tag/web-development/)
- [lpw2015](https://perlhacks.com/tag/lpw2015/)
- [web developm](https://perlhacks.com/tag/web-developm/)
- [ebooks](https://perlhacks.com/tag/ebooks/)
- [web hosting](https://perlhacks.com/tag/web-hosting/)
- [packaging](https://perlhacks.com/tag/packaging/)
- [handoff](https://perlhacks.com/tag/handoff/)
- [www::shorten](https://perlhacks.com/tag/wwwshorten/)
- [archaeology](https://perlhacks.com/tag/archaeology/)
- [old](https://perlhacks.com/tag/old/)
- [dodgy](https://perlhacks.com/tag/dodgy/)
- [crap](https://perlhacks.com/tag/crap/)
- [yapceu2016](https://perlhacks.com/tag/yapceu2016/)
- [cluj](https://perlhacks.com/tag/cluj/)
- [qmail](https://perlhacks.com/tag/qmail/)
- [qmhandle](https://perlhacks.com/tag/qmhandle/)
- [audio](https://perlhacks.com/tag/audio/)
- [ogg vorbis](https://perlhacks.com/tag/ogg-vorbis/)
- [coveralls.io](https://perlhacks.com/tag/coveralls-io/)
- [dancer2](https://perlhacks.com/tag/dancer2/)
- [medium](https://perlhacks.com/tag/medium/)
- [damianware](https://perlhacks.com/tag/damianware/)
- [t-shirt](https://perlhacks.com/tag/t-shirt/)
- [lingua::en::inflexion](https://perlhacks.com/tag/linguaeninflexion/)
- [feedback](https://perlhacks.com/tag/feedback/)
- [contracting](https://perlhacks.com/tag/contracting/)
- [hacktoberfest](https://perlhacks.com/tag/hacktoberfest/)
- [symbol-approx-sub](https://perlhacks.com/tag/symbol-approx-sub/)
- [version](https://perlhacks.com/tag/version/)
- [semver](https://perlhacks.com/tag/semver/)
- [semantic versioning](https://perlhacks.com/tag/semantic-versioning/)
- [cooking vinyl](https://perlhacks.com/tag/cooking-vinyl/)
- [tower bridge](https://perlhacks.com/tag/tower-bridge/)
- [planets](https://perlhacks.com/tag/planets/)
- [last.fm](https://perlhacks.com/tag/last-fm/)
- [tpc](https://perlhacks.com/tag/tpc/)
- [the perl conference](https://perlhacks.com/tag/the-perl-conference/)
- [amsterdam](https://perlhacks.com/tag/amsterdam/)
- [perl conference](https://perlhacks.com/tag/perl-conference/)
- [hacking](https://perlhacks.com/tag/hacking/)
- [patches](https://perlhacks.com/tag/patches/)
- [perl 5.26](https://perlhacks.com/tag/perl-5-26/)
- [miscellaneous](https://perlhacks.com/tag/miscellaneous/)
- [perlnews](https://perlhacks.com/tag/perlnews/)
- [the perl conferen](https://perlhacks.com/tag/the-perl-conferen/)
- [indigogo](https://perlhacks.com/tag/indigogo/)
- [shields.io](https://perlhacks.com/tag/shields-io/)
- [module](https://perlhacks.com/tag/module/)
- [svg](https://perlhacks.com/tag/svg/)
- [traffic lights](https://perlhacks.com/tag/traffic-lights/)
- [svg::trafficlight](https://perlhacks.com/tag/svgtrafficlight/)
- [timelines](https://perlhacks.com/tag/timelines/)
- [genealogy](https://perlhacks.com/tag/genealogy/)
- [svg::timeline::genealogy](https://perlhacks.com/tag/svgtimelinegenealogy/)
- [github pages](https://perlhacks.com/tag/github-pages/)
- [jekyll](https://perlhacks.com/tag/jekyll/)
- [sitebuilder](https://perlhacks.com/tag/sitebuilder/)
- [aphra](https://perlhacks.com/tag/aphra/)
- [aphra behn](https://perlhacks.com/tag/aphra-behn/)
- [conference](https://perlhacks.com/tag/conference/)
- [lpw2018](https://perlhacks.com/tag/lpw2018/)
- [lpw2017](https://perlhacks.com/tag/lpw2017/)
- [e-book](https://perlhacks.com/tag/e-book/)
- [amazon](https://perlhacks.com/tag/amazon/)
- [markdown](https://perlhacks.com/tag/markdown/)
- [royalty](https://perlhacks.com/tag/royalty/)
- [json-ld](https://perlhacks.com/tag/json-ld/)
- [selenium](https://perlhacks.com/tag/selenium/)
- [glasgow](https://perlhacks.com/tag/glasgow/)
- [web site](https://perlhacks.com/tag/web-site/)
- [tpc2018](https://perlhacks.com/tag/tpc2018/)
- [theperlconference](https://perlhacks.com/tag/theperlconference/)
- [professional development](https://perlhacks.com/tag/professional-development/)
- [cross-training](https://perlhacks.com/tag/cross-training/)
- [tpcig](https://perlhacks.com/tag/tpcig/)
- [bug fixing](https://perlhacks.com/tag/bug-fixing/)
- [global variables](https://perlhacks.com/tag/global-variables/)
- [bug](https://perlhacks.com/tag/bug/)
- [open](https://perlhacks.com/tag/open/)
- [operator precedence](https://perlhacks.com/tag/operator-precedence/)
- [perlcon](https://perlhacks.com/tag/perlcon/)
- [perlcon19](https://perlhacks.com/tag/perlcon19/)
- [latvia](https://perlhacks.com/tag/latvia/)
- [perlweeklychallenge](https://perlhacks.com/tag/perlweeklychallenge/)
- [perl weekly challenge](https://perlhacks.com/tag/perl-weekly-challenge/)
- [calendar](https://perlhacks.com/tag/calendar/)
- [weekends](https://perlhacks.com/tag/weekends/)
- [word wrapping](https://perlhacks.com/tag/word-wrapping/)
- [perl. blogging](https://perlhacks.com/tag/perl-blogging/)
- [echo chamber](https://perlhacks.com/tag/echo-chamber/)
- [aggregator](https://perlhacks.com/tag/aggregator/)
- [planet perl](https://perlhacks.com/tag/planet-perl/)
- [rt](https://perlhacks.com/tag/rt/)
- [bugtracker](https://perlhacks.com/tag/bugtracker/)
- [gitpan](https://perlhacks.com/tag/gitpan/)
- [cpan rt](https://perlhacks.com/tag/cpan-rt/)
- [docker](https://perlhacks.com/tag/docker/)
- [container](https://perlhacks.com/tag/container/)
- [semi-static](https://perlhacks.com/tag/semi-static/)
- [workflow](https://perlhacks.com/tag/workflow/)
- [github actions](https://perlhacks.com/tag/github-actions/)
- [pull request](https://perlhacks.com/tag/pull-request/)
- [semi-static sites](https://perlhacks.com/tag/semi-static-sites/)
- [test coverage](https://perlhacks.com/tag/test-coverage/)
- [ai](https://perlhacks.com/tag/ai/)
- [chatgpt](https://perlhacks.com/tag/chatgpt/)
- [web feed](https://perlhacks.com/tag/web-feed/)
- [atom](https://perlhacks.com/tag/atom/)
- [planet](https://perlhacks.com/tag/planet/)
- [abandonware](https://perlhacks.com/tag/abandonware/)
- [http_this](https://perlhacks.com/tag/http_this/)
- [tprc](https://perlhacks.com/tag/tprc/)
- [toronto](https://perlhacks.com/tag/toronto/)
- [2023](https://perlhacks.com/tag/2023/)
- [github-organisations](https://perlhacks.com/tag/github-organisations/)
- [ci](https://perlhacks.com/tag/ci/)
- [cd](https://perlhacks.com/tag/cd/)
- [deployment](https://perlhacks.com/tag/deployment/)
- [best practices](https://perlhacks.com/tag/best-practices/)
- [advice](https://perlhacks.com/tag/advice/)
- [links](https://perlhacks.com/tag/links/)
- [side projects](https://perlhacks.com/tag/side-projects/)
- [programming. amazon](https://perlhacks.com/tag/programming-amazon/)
- [oo](https://perlhacks.com/tag/oo/)
- [devops](https://perlhacks.com/tag/devops/)
- [daemon](https://perlhacks.com/tag/daemon/)
- [updates](https://perlhacks.com/tag/updates/)
- [ical](https://perlhacks.com/tag/ical/)
- [mergcal](https://perlhacks.com/tag/mergcal/)
- [perlclass](https://perlhacks.com/tag/perlclass/)
- [copilot](https://perlhacks.com/tag/copilot/)
- [lpw2024](https://perlhacks.com/tag/lpw2024/)
- [adverts](https://perlhacks.com/tag/adverts/)
- [linksite](https://perlhacks.com/tag/linksite/)
- [app::linksite](https://perlhacks.com/tag/applinksite/)
- [london perl mongers](https://perlhacks.com/tag/london-perl-mongers/)
- [website](https://perlhacks.com/tag/website/)
- [websites](https://perlhacks.com/tag/websites/)
- [perl steering council](https://perlhacks.com/tag/perl-steering-council/)
- [perl 5 porters](https://perlhacks.com/tag/perl-5-porters/)
- [proposed perl changes](https://perlhacks.com/tag/proposed-perl-changes/)
- [ppcs](https://perlhacks.com/tag/ppcs/)
- [template toolkit](https://perlhacks.com/tag/template-toolkit/)
- [cool stuff](https://perlhacks.com/tag/cool-stuff/)
- [openai](https://perlhacks.com/tag/openai/)
- [webfeed](https://perlhacks.com/tag/webfeed/)
- [syndication](https://perlhacks.com/tag/syndication/)
- [deduplication](https://perlhacks.com/tag/deduplication/)
- [images](https://perlhacks.com/tag/images/)
- [blur fill](https://perlhacks.com/tag/blur-fill/)
- [Developer Productivity](https://perlhacks.com/tag/developer-productivity/)
- [Shell Scripting](https://perlhacks.com/tag/shell-scripting/)
- [AI-Assisted Development](https://perlhacks.com/tag/ai-assisted-development/)
- [wev dev](https://perlhacks.com/tag/wev-dev/)
- [systemd](https://perlhacks.com/tag/systemd/)
- [programing](https://perlhacks.com/tag/programing/)
- [list](https://perlhacks.com/tag/list/)
- [array](https://perlhacks.com/tag/array/)
- [hash](https://perlhacks.com/tag/hash/)
- [slice](https://perlhacks.com/tag/slice/)
- [system perl](https://perlhacks.com/tag/system-perl/)
- [carton](https://perlhacks.com/tag/carton/)
- [perlbrew](https://perlhacks.com/tag/perlbrew/)
- [opengraph](https://perlhacks.com/tag/opengraph/)
- [cloud](https://perlhacks.com/tag/cloud/)
- [dotcom](https://perlhacks.com/tag/dotcom/)
- [survivor syndrome](https://perlhacks.com/tag/survivor-syndrome/)
- [developer bias](https://perlhacks.com/tag/developer-bias/)
- [pandoc](https://perlhacks.com/tag/pandoc/)
- [epub](https://perlhacks.com/tag/epub/)
- [wkhtmltopdf](https://perlhacks.com/tag/wkhtmltopdf/)
- [linter](https://perlhacks.com/tag/linter/)
- [webdev](https://perlhacks.com/tag/webdev/)
- [static sites](https://perlhacks.com/tag/static-sites/)
- [module metadata](https://perlhacks.com/tag/module-metadata/)
- [toon](https://perlhacks.com/tag/toon/)
- [serialisation](https://perlhacks.com/tag/serialisation/)

Document

llms-full.txt

Not stored for this site.