#!/usr/bin/perl # taiwanbizchecksum -- 計算台灣營利事業統一編號之檢查號碼 # Compute Taiwan business registration number checksums # Copyright : http://www.fsf.org/copyleft/gpl.html # Author : 積丹尼 Dan Jacobson -- http://jidanni.org/comp/checksums/ # Created On : Wed Jan 12 02:11:14 2005 # Last Modified On: Sat Sep 12 18:59:22 2015 # Update Count : 63 # 使用例子 Usage example: $ echo 9999999 | taiwanbizchecksum # 99999997 use strict; use warnings FATAL => 'all'; while (<>) { chomp; die "$_: 請輸入營利事業編號前七碼" unless /^\d{7}$/; my @A = ( 1, 2, 1, 2, 1, 2, 4 ); my $sum = 0; for ( split '' ) { map $sum += $_, split '', $_ * shift @A } printf "$_%d\n", ( 10 - $sum % 10 ) % 10; } #Or map $sum += $_, split '', $_ * ( $i % 2 + 1 + 3 * int $i++ / 6 );