|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /proc/21585/root/usr/lib/perl5/vendor_perl/5.8.8/URI/urn/ |
Upload File : |
package URI::urn::isbn; # RFC 3187
require URI::urn;
@ISA=qw(URI::urn);
use strict;
use Business::ISBN ();
sub _isbn {
my $nss = shift;
$nss = $nss->nss if ref($nss);
my $isbn = Business::ISBN->new($nss);
$isbn = undef if $isbn && !$isbn->is_valid;
return $isbn;
}
sub _nss_isbn {
my $self = shift;
my $nss = $self->nss(@_);
my $isbn = _isbn($nss);
$isbn = $isbn->as_string if $isbn;
return($nss, $isbn);
}
sub isbn {
my $self = shift;
my $isbn;
(undef, $isbn) = $self->_nss_isbn(@_);
return $isbn;
}
sub isbn_publisher_code {
my $isbn = shift->_isbn || return undef;
return $isbn->publisher_code;
}
sub isbn_country_code {
my $isbn = shift->_isbn || return undef;
return $isbn->country_code;
}
sub isbn_as_ean {
my $isbn = shift->_isbn || return undef;
return $isbn->as_ean;
}
sub canonical {
my $self = shift;
my($nss, $isbn) = $self->_nss_isbn;
my $new = $self->SUPER::canonical;
return $new unless $nss && $isbn && $nss ne $isbn;
$new = $new->clone if $new == $self;
$new->nss($isbn);
return $new;
}
1;