#!/usr/bin/perl $s = ''7-5306-3625-1'; $s = &isbn_check($s); print $ns."\n";
sub isbn_check { my($str) = @_; my($index,$isbn,$ch); $isbn=''; while($index < length($str)) { $ch = substr($str,$index,1); $isbn .= $ch if($ch =~ /[0-9]/); $index++; } return('9999999999') if(length($isbn) < 10 or length($isbn) > 13); $isbn = substr($isbn,3,10) if(length($isbn) == 13); my $count = 0; for($index=0;$index<9;$index++) { $ch = substr($isbn,$index,1); $count=$count + $ch * (10 - $index); } $ch = 11 - $count % 11; $ch = 'X' if($ch == 10); return($isbn) if($ch eq substr($isbn,9,1)); return('9999999999'); }