NAME

SeeAlso::Identifier::ISSN - SeeAlso handling of International Standard Serial Numbers

SYNOPSIS

my $issn = new SeeAlso::Identifier::ISSN "";

print "invalid" unless $issn; # $issn is defined but false !

$issn->value;                  # get value
$issn->value( '1456-5935' );   # set value

$issn->canonical; # urn:ISSN:1456-5935
$issn; # ISSN as URI (urn:ISSN:1456-5935)

$issn->pretty; # 1456-5935   (most official form)

$issn->hash; # long int 0 <= x <= 9.999.999 (or "")
$issn->hash( 1456593 ); # set by hash value

DESCRIPTION

This module handles International Standard Serial Numbers as identifiers by letting Business::ISSN do the real work. Unlike Business::ISSN the constructor of SeeAlso::Identifier::ISSN always returns an defined identifier with all methods provided by SeeAlso::Identifier. As canonical form the URN representation of ISSN with hyphens is used. As hashed form of an ISSN, a 32 Bit integer can be calculated.

Please note that (hashed) 0 is a valid value representing ISSN 0000-0000.

METHODS

parse ( $value )

Get and/or set the value of the ISSN. Returns an empty string or the valid ISSN with hyphens as determined by Business::ISSN. You can also use this method as function.

canonical

Returns a Uniform Resource Identifier (URI) for this ISSN (or an empty string).

This is an URI according to RFC 3044 ("urn:ISSN:...").

hash ( [ $value ] )

Returns or sets a space-efficient representation of the ISSN as integer. An ISSN always consists of 7 digits plus a check digit/character. This makes 10.000.000 possible ISSN which fit in a 32 bit (signed or unsigned) integer value. The integer value is calculated from the ISSN by removing the dash and the check digit.

pretty

Returns the standard form of an ISSN with dash and captialized check digit 'X'.

AUTHOR

Thomas Berger <THB@cpan.org>

ACKNOWLEDGEMENTS

Jakob Voss <jakob.voss@gbv.de> crafted SeeAlso::Identifier::ISBN where this one is heavily derived from.

COPYRIGHT

Copyright (c) 2010-2011 Thomas Berger.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.

SEE ALSO

perl(1), Business::ISSN, SeeAlso::Identifer.