Day 24: Games!

About the series: perlancar's 2014 Advent Calendar: Introduction to a selection of 24 modules which I published in 2014. Table of contents.

I'll close this series by mentioning that in August I created a few simple text-based games: Games::WordGuess, Games::Hangman, Games::ArrangeNumber. The reason I did this origin…

Day 23: App::chart and Text::chart

About the series: perlancar's 2014 Advent Calendar: Introduction to a selection of 24 modules which I published in 2014. Table of contents.

metacpan.org/pod/Text::Graph">Text::Graph module, which I have also used, but ran into some minor problems and limitations in formatting. Unfortunately there's not much thing to show right now as the only type of chart…

Day 22: Safer system() alternative (Sys::Run::Safer)

About the series: perlancar's 2014 Advent Calendar: Introduction to a selection of 24 modules which I published in 2014. Table of contents.

Sys::Run::Safer is an attempt to create a safer API for running programs.

As we might already know, Perl's system() may or may not call a shell depending on a number of things. If we want to avoid a shell, doing system @ary or even system $cmd, @args is not…

Day 21: Checking if a string contains shell wildcard (String::Wildcard::Bash)

About the series: perlancar's 2014 Advent Calendar: Introduction to a selection of 24 modules which I published in 2014. Table of contents.

A few months ago, during work with shell tab completion, I wanted a routine to know if a string contains a wildcard. For example, if I have this on the command-line buffer: emacs f*txt and press Tab, shells will usually be helpful and show me the list of filenames matching that wildcard. So I wanted to test whether f*txt contai…

Day 20: Creating test databases (Test::WithDB)

About the series: perlancar's 2014 Advent Calendar: Introduction to a selection of 24 modules which I published in 2014. Table of contents.

Here's one little module that can help you create dummy databases during testing: Test::WithDB. It's great together with Test::DatabaseRow (which happened to be featured in this yea…