my ($asin) = ($_->{url} =~ m![/=]([B0123489][A-Z0-9]{9})(/|.html?)?$!); if ($asin) { if ($asin =~ /^B/) { $_->{asin} = $asin; } else { my @d = split(//, $asin); my $wa; for (my $i = 0; $i <= 8; $i++) { $wa += (10-$i) * $d[$i]; } my $chk = 11 - ($wa % 11); $chk = ($chk < 10) ? $chk : (($chk == 10) ? 'X' : '0'); $_->{asin} = $asin if ($d[9] eq $chk); } }