Tom Wyant
and 1 contributors


scal - Displays a Shire calendar


 scal 7482
 scal 6 7482
 scal -y
 scal -y 7482
 scal -help
 scal -version



If this Boolean option is asserted, the current day is emphasized.

The default is true if STDOUT is a terminal, and false if not.


 -color-today 'magenta on_black'

This option specifies how to emphasize the current day. The value must be acceptable to Term::ANSIColor. The default is 'underline'.


This option displays the documentation for this script. The script then exits.


If this Boolean option is asserted, Julian days are displayed, with 2 Yule being day 1.


This option displays the version of this script. The script then exits.


If this Boolean option is asserted, a whole year is displayed, including Midyear's Day, and the Overlithe if any. If it is not asserted, only a month is displayed.

The default is -noy.


This Perl script displays the Shire calendar for the Shire Reckoning month and year specified on the command line. The default is to display the current month and year.

For the purpose of selecting dates to display, the holidays are lumped in with months as follows.

 2 Yule -------- Afteryule (month 1)
 1 Lithe ------- Forelithe (month 6)
 Midyear's day - Forelithe (month 6)
 Overlithe ----- Forelithe (month 6)
 2 Lithe ------- Afterlithe (month 7)
 1 Yule -------- Foreyule (month 12)

This script is intended to be the Shire analog of the cal (1). command.


You can specify default options in a file named .scalrc in your home directory. Each line of this file is trimmed front and back, and becomes a command line argument inserted before anything specified explicitly. For example, to make the current day bold red, you could specify

 -color-today=bold red

or, alternatively,

 bold red

You can still override anything here by specifying command arguments, but anything you place in this file must parse correctly.

The code to find the home directory is home-grown, but mimics that in File::Glob::bsd_glob().


Thomas R. Wyant, III wyant at cpan dot org


Copyright (C) 2017-2019 by Thomas R. Wyant, III

This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5.10.0. For more details, see the full text of the licenses in the directory LICENSES.

This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.