< Internal
sub StoreISBN { my ($num) = @_; return &StoreRaw(&ISBNLink($num)); } sub ISBNALink { my ($num, $pre, $post, $text) = @_; return '<a href="' . $pre . $num . $post . '">' . $text . '</a>'; } sub ISBNLink { my ($rawnum) = @_; my ($rawprint, $html, $num, $numSites, $i); $num = $rawnum; $rawprint = $rawnum; $rawprint =~ s/ +$//; $num =~ s/[- ]//g; $numSites = scalar @IsbnNames; # Number of entries if ((length($num) != 10) || ($numSites < 1)) { return "ISBN $rawnum"; } $html = &ISBNALink($num, $IsbnPre[0], $IsbnPost[0], 'ISBN ' . $rawprint); if ($numSites > 1) { $html .= ' ('; $i = 1; while ($i < $numSites) { $html .= &ISBNALink($num, $IsbnPre[$i], $IsbnPost[$i], $IsbnNames[$i]); if ($i < ($numSites - 1)) { # Not the last site $html .= ', '; } $i++; } $html .= ')'; } $html .= " " if ($rawnum =~ / $/); # Add space if old ISBN had space. return $html; }
<- Das ist der Teil aus wiki.pl der die ISBN Links erzeugt. Die Aufgabe wΣre nun eine neue Funktion 'ASIN Link' ,da die ASIN zwar auch immer 10-stellig is ,aber neben "rawnumbers" auch Buchstaben enthalten kann.