This file is indexed.

/usr/share/perl5/Business/ISBN13.pm is in libbusiness-isbn-perl 3.003-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package Business::ISBN13;
use strict;
use base qw(Business::ISBN);

use Business::ISBN qw(:all);
use Data::Dumper;

use vars qw(
	$VERSION
	$debug
	);

use Carp qw(carp croak cluck);

my $debug = 0;

$VERSION   = '3.003';

sub _max_length { 13 }

sub _set_type { $_[0]->{type} = 'ISBN13' }

sub _parse_prefix {
	my $isbn = $_[0]->isbn; # stupid workaround for 'Can't modify non-lvalue subroutine call'
	( $isbn =~ /\A(97[89])(.{10})\z/g )[0];
	}

sub _set_prefix {
	croak "Cannot set prefix [$_[1]] on an ISBN-13"
		unless $_[1] =~ m/\A97[89]\z/;

	$_[0]->{prefix} = $_[1];
	}

sub _hyphen_positions {
	[
	$_[0]->_prefix_length,
	$_[0]->_prefix_length + $_[0]->_group_code_length,
	$_[0]->_prefix_length + $_[0]->_group_code_length + $_[0]->_publisher_code_length,
	$_[0]->_checksum_pos,
	]
	}

# sub group { 'Bookland' }

sub as_isbn10 {
	my $self = shift;

	return unless $self->prefix eq '978';

	my $isbn10 = Business::ISBN->new(
		substr( $self->isbn, 3 )
		);
	$isbn10->fix_checksum;

	return $isbn10;
	}

sub as_isbn13 {
	my $self = shift;

	my $isbn13 = Business::ISBN->new( $self->as_string );
	$isbn13->fix_checksum;

	return $isbn13;
	}

#internal function.  you don't get to use this one.
sub _checksum {
	my $data = $_[0]->isbn;

	return unless defined $data;

	my @digits = split //, $data;
	my $sum    = 0;

	foreach my $index ( 0, 2, 4, 6, 8, 10 )
		{
		$sum +=     substr($data, $index, 1);
		$sum += 3 * substr($data, $index + 1, 1);
		}

	#take the next higher multiple of 10 and subtract the sum.
	#if $sum is 37, the next highest multiple of ten is 40. the
	#check digit would be 40 - 37 => 3.
	my $checksum = ( 10 * ( int( $sum / 10 ) + 1 ) - $sum ) % 10;

	return $checksum;
	}

1;

__END__

=encoding utf8

=head1 NAME

Business::ISBN13 - work with 13 digit International Standard Book Numbers

=head1 SYNOPSIS

See L<Business::ISBN>

=head1 DESCRIPTION

See L<Business::ISBN>

=head1 SOURCE AVAILABILITY

This source is in Github.

	https://github.com/briandfoy/business-isbn

=head1 AUTHOR

brian d foy C<< <bdfoy@cpan.org> >>

=head1 COPYRIGHT AND LICENSE

Copyright © 2001-2016, brian d foy <bdfoy@cpan.org>. All rights reserved.

This module is licensed under the Artistic License 2.0. See the LICENSE
file in the distribution, or https://opensource.org/licenses/Artistic-2.0

=cut