App::JobLog::Command::configure - examine or modify App::JobLog configuration


version 1.042


 houghton@NorthernSpy:~$ job configure --help
 job <command>
 job configure [-l] [long options...]
        --precision               decimal places of precision in display of
                                  time; e.g., --precision=1; default is 2
        --start-pay-period        the first day of some pay period; pay
                                  period boundaries will be calculated based
                                  on this date and the pay period length;
                                  e.g., --start-pay-period="June 14, 1912"
        --time-zone               time zone used in calendar calculations;
                                  default is local
        --sunday-begins-week      whether Sundays should be regarded as the
                                  first day in the week; the alternative is
                                  Monday; default is TRUE
        --length-pay-period       the length of the pay period in days; e.g.,
                                  --pp-length= 7; default is 14
        --day-length              length of workday; e.g., -d 7.5; default is
        --workdays                which days of the week you work represented
                                  as some subset of SMTWHFA; e.g.,
                                  --workdays=MTWH; default is MTWHF
        --merge                   amount of merging of events in summaries;
                                  available options are : 'adjacent same
                                  tags', 'adjacent', 'all', 'none', 'same day
                                  same tags', 'same day', 'same tags';
                                  default is 'adjacent same tags'
        --hidden-columns          columns not to display with the summary
                                  command; available options are: 'none',
                                  'date', 'description', 'duration', 'tags',
                                  'time'; default is 'none'; multiple columns
                                  may be specified
        --editor                  text editor to use when manually editing
                                  the log
        -l --list                 list all configuration parameters
        --help                    this usage screen
 houghton@NorthernSpy:~$ job configure --list
 day length                          8
 editor                   /usr/bin/vim
 hidden columns                   none
 merge              adjacent same tags
 pay period length                  14
 precision                           1
 start pay period           2009-01-11
 sunday begins week               true
 time zone                       local
 workdays                        MTWHF
 houghton@NorthernSpy:~$ job configure --precision 2
 precision set to 2
 houghton@NorthernSpy:~$ job configure -l
 day length                          8
 editor                   /usr/bin/vim
 hidden columns                   none
 merge              adjacent same tags
 pay period length                  14
 precision                           2
 start pay period           2009-01-11
 sunday begins week               true
 time zone                       local
 workdays                        MTWHF


App::JobLog::Command::configure is the command one should use to edit ~/.joblog/config.ini. It will validate the parameters, preventing you from producing a broken configuration file. If you specify no configuration parameters sensible defaults will be used when possible. For some, such as the beginning of the pay period, no such default is available. App::JobLog::TimeGrammar will be unable to interpret time expressions involving pay periods until this parameter is set. The other parameter for which there is no default is editor. See App::JobLog::Command::editor for further details.


day length

To calculate vacation time and how much time you have left to work in a day App::JobLog needs to know how much time you work in a typical workday. This is the day length parameter.


App::JobLog::Command::editor requires some text editor to edit the log. Specify it here.

Note that this editor must be invokable like so:

  <editor> <file>

Also, if you need to provide any additional arguments you can provide them as part of this parameter.

hidden columns

When you invoke App::JobLog::Command::summary or the other log summarizing commands you have the option of hiding various pieces of information which by default are displayed: time, date, duration, tags, description, and total hours. If you wish certain of these always to be hidden you can specify this with this parameter. If you wish to hide multiple columns you must provide multiple instances of this parameter, each with a column to hide.


App::JobLog::Command::summary can produce a report keeping each event separate, merging them by day, merging them by tag, merging immediately adjoining events, and so forth. If you find you are always specifying a particular variety of merge you can set this parameter so it becomes the default.

pay period length

In order to calculate the beginning of pay periods one needs to know when a particular period began and the length of pay periods generally. The parameter supplies the latter.


This parameter specifies the number of digits appearing after the decimal point in the reported duration of events.

start pay period

In order to calculate the beginnings and ends of pay periods, and hence how many hours one has left to work in a particular pay period, for instance, one needs to know both their length generally and the beginning of some particular pay period. This parameter supplies the latter.

sunday begins week

App::JobLog uses DateTime for all calendar math. DateTime regards Monday as the first day of the week. Another convention is to regard Sunday as the first day of the week. This is significant because it changes the meaning of phrases such as this week and March 1 until the end of the week. Use this parameter to choose your preferred interpretation of such phrases.

time zone

This is the time zone used for converting the system time to the time of the day. Most likely you will not need to set this parameter, but go here if your times look funny.


App::JobLog needs to know which days you are expected to work in order to determine when to assign vacation hours and calculate how much time you still have to work in a particular period. The default assumption is that you work from Monday to Friday, signified by the string MTWHF (case is ignored). Sunday is S and Saturday is A. Use this parameter to modify or affirm this assumption.


David F. Houghton <>


This software is copyright (c) 2011 by David F. Houghton.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.