falling back if which is not a valid command.
[feisty_meow.git] / scripts / math / inc_num.pl
1 #!/usr/bin/perl
2
3 ###############################################################################
4 #                                                                             #
5 #  Name   : inc_num                                                           #
6 #  Author : Chris Koeritz                                                     #
7 #  Rights : Copyright (C) 1996-$now by Author                                 #
8 #                                                                             #
9 #  Purpose:                                                                   #
10 #                                                                             #
11 #    Operates on a number stored in a text file.  the number can be retrieved #
12 #  for whatever purpose or it can be incremented.                             #
13 #                                                                             #
14 ###############################################################################
15 #  This program is free software; you can redistribute it and/or modify it    #
16 #  under the terms of the GNU General Public License as published by the Free #
17 #  Software Foundation; either version 2 of the License or (at your option)   #
18 #  any later version.  See: "http://www.gruntose.com/Info/GNU/GPL.html" for a #
19 #  version of the License.  Please send any updates to "fred@gruntose.com".   #
20 ###############################################################################
21
22 # A number is retrieved from the passed in filename and returned.
23 sub get_number {
24   local($number_file) = @_;
25 #print "num file is $number_file\n";
26   open(NUMBERING, "$number_file");
27   local($number) = int(<NUMBERING>);
28   if ($number <= 0) { $number = 1; }
29   if ($number < 10) { $number = '0'.$number; }
30   if ($number < 100) { $number = '0'.$number; }
31   if ($number < 1000) { $number = '0'.$number; }
32   close(NUMBERING);
33   return $number;
34 }
35
36 # the number in the passed filename is increased.
37 sub next_number {
38   local($number_file) = @_;
39   local($number) = &get_number($number_file);
40   if ($number < 0) { $number = '0000'; }
41   $number++;
42   if ($number > 9999) { $number = '0000'; }
43   open(NUMBERING, "> $number_file");
44 #print "number is now $number\n";
45   print NUMBERING "$number\n";
46   close(NUMBERING);
47 }
48
49 # stores the number specified into the file specified.
50 sub store_number {
51   local($number, $number_file) = @_;
52 #print "storing $number into $number_file\n";
53   open(NUMBERING, "> $number_file");
54   print NUMBERING "$number\n";
55   close(NUMBERING);
56 }
57
58 1;
59