1 package C4::Input; #assumes C4/Input
6 use vars qw($VERSION @ISA @EXPORT);
8 # set the version for version checking
13 &checkflds &checkdigit &checkvalidisbn
17 my ($env,$reqflds,$data) = @_;
18 my $numrflds = @$reqflds;
21 while ($i < $numrflds) {
22 if ($data->{@$reqflds[$i]} eq "") {
23 push(@probarr, @$reqflds[$i]);
33 my @weightings = (8,4,6,3,5,2,1);
39 my $temp1 = $weightings[$i-1];
40 my $temp2 = substr($infl,$i,1);
41 $sum = $sum + ($temp1*$temp2);
42 # print "$sum $temp1 $temp2<br>";
50 if ($rem eq substr($infl,8,1)) {
56 #--------------------------------------
57 # Determine if a number is a valid ISBN number, according to length
58 # of 10 digits and valid checksum
61 my ($q)=@_ ; # Input: ISBN number
63 my $isbngood = 0; # Return: true or false
65 $q=~s/x$/X/g; # upshift lower case X
69 my $checksum=substr($q,9,1);
70 my $isbn=substr($q,0,9);
73 for ($i=0; $i<9; $i++) {
74 my $digit=substr($q,$i,1);
77 $c=$c%11; # % is the modulus function
79 if ($c eq $checksum) {
90 } # sub checkvalidisbn
93 END { } # module clean-up code here (global destructor)