1 package URI::urn::isbn; # RFC 3187
12 $nss = $nss->nss if ref($nss);
13 my $isbn = Business::ISBN->new($nss);
14 $isbn = undef if $isbn && !$isbn->is_valid;
20 my $nss = $self->nss(@_);
21 my $isbn = _isbn($nss);
22 $isbn = $isbn->as_string if $isbn;
29 (undef, $isbn) = $self->_nss_isbn(@_);
33 sub isbn_publisher_code {
34 my $isbn = shift->_isbn || return undef;
35 return $isbn->publisher_code;
38 sub isbn_country_code {
39 my $isbn = shift->_isbn || return undef;
40 return $isbn->country_code;
44 my $isbn = shift->_isbn || return undef;
50 my($nss, $isbn) = $self->_nss_isbn;
51 my $new = $self->SUPER::canonical;
52 return $new unless $nss && $isbn && $nss ne $isbn;
53 $new = $new->clone if $new == $self;