1use strict; 2use Digest::SHA qw(sha1_hex); 3 4my $skip = $] < 5.006 ? 1 : 0; 5 6my $TEMPLATE = $] >= 5.006 ? 'U*' : 'C*'; 7my $empty_unicode = pack($TEMPLATE, ()); 8my $ok_unicode = pack($TEMPLATE, (0..255)); 9my $wide_unicode = pack($TEMPLATE, (0..256)); 10 11print "1..3\n"; 12 13unless ($skip) { 14 print "not " unless sha1_hex($empty_unicode."abc") eq 15 "a9993e364706816aba3e25717850c26c9cd0d89d"; 16} 17print "ok 1", $skip ? " # skip: no Unicode" : "", "\n"; 18 19unless ($skip) { 20 print "not " unless sha1_hex($ok_unicode) eq 21 "4916d6bdb7f78e6803698cab32d1586ea457dfc8"; 22} 23print "ok 2", $skip ? " # skip: no Unicode" : "", "\n"; 24 25unless ($skip) { 26 eval { sha1_hex($wide_unicode) }; 27 print "not " unless $@ =~ /Wide character/; 28} 29print "ok 3", $skip ? " # skip: no Unicode" : "", "\n"; 30