近頃版/another blog@hatena/Wiki/BBS
< そろそろ欲しくなってきた | 購入物 >
ぐぐる様で検索してもすぐに出てこないのでカッとなって書いた。
とりあえずコマンドとして動く版を晒しておく。入力値のチェックしなさぶりとか、perlっぽいインチキぶりとか、あまり見習わないことを推奨。実際には日記のスクリプトにamazon様へのリンクを吐かせるための機構に組み込んだ。
#!/usr/bin/perl foreach(@ARGV){ @arr = (split(//,$_)); if(@arr == 10){ unshift(@arr,(9,7,8)); pop(@arr); my($odd,$even); $odd = 0;map {$odd += $_} (@arr[0,2,4,6,8,10]); $even = 0;map {$even += $_} (@arr[1,3,5,7,9,11]); $check_digit = 10 - ($odd + $even * 3) % 10; print join('',@arr,$check_digit),"\n"; }elsif(@arr == 13){ splice(@arr,0,3); pop(@arr); my $c; my $m = 10; foreach(@arr){ $c += $_ * $m; $m--; } $check_digit = 11 - ($c % 11); $check_digit = 'X' if ($check_digit == 10); print join('',@arr,$check_digit),"\n"; } }