Annotation of wpscripts/ztransfer/hash.pm, Revision 1.1.1.1
1.1 yason 1: #!/usr/bin/perl
2: # $Id: hash.pm,v 1.1.2.1 2007/01/12 12:13:38 init Exp $
3: package hash;
4: use log;
5: use warnings;
6: use strict;
7:
8: our $HASHFILE = "/usr/local/etc/ztransfer.hash";
9: our %directoryhash = ();
10:
11: sub loadtable()
12: {
13: # read table from $HASHFILE (if any) into %directoryhash
14: # return number of records or return -1 on error
15: my @lines;
16: my @keys; #XXX
17: my $line;
18: my $lineno; # for debug
19: my $key;
20: my $value;
21: my $records = 0;
22:
23: open(FILE, "<$HASHFILE") or return (-1);
24:
25: @lines = <FILE>;
26: foreach $line (@lines)
27: {
28: $lineno++;
29:
30: # treat '#' ANYWHERE as invalid character leading to ignore whole line
31: # so it may be used as a comment
32: if ( ((index($line, '#', 0)) == -1) and $line ne "\n")
33: {
34: ($key, $value) = split(/\t+|\s+/, $line);
35: # avoid null elements
36: if ($value eq '')
37: {
38: return(0);
39: }
40:
41: # don't count "\n"s
42: $records++;
43: $directoryhash{$key} = $value;
44: }
45: }
46: close(FILE);
47:
48: return ($records);
49: }
50:
51:
52: sub lookup($)
53: {
54: my $what = shift;
55:
56: if ( defined($directoryhash{$what}) )
57: {
58: # return value for further substitution
59: return( $directoryhash{$what} );
60: # NOTREACHED
61: }
62: # else
63: return "";
64: }
65:
66: return(1);
CVSweb