��ʸ�����Ƥ�ꡢ�����餬̯�˲��������ä��Τǡ�

[��] UTF-8 ��Ⱦ�ѥ��ʤ�Ƚ��
begin 755 utf8hankana-test.pl.gz

������ȤԤ�Ȥ��ʤ��������ʤ���uuencode��Wikipedia��en�����ˤϤ��äƤ�ja�����ˤϤʤ����ʤ���

���ĤƤϡ����줬binary file��ƥ����Ȥ�ɽ������ de facto standard�Ǥ�����������Wikipedia��Entry�ˤ���褦�ˡ�����Base64�ˤۤȤ���֤��������Ƥ��ޤ���

decode�ˤ�uudecode�Ȥ������ޥ�ɤ�Ȥ��ޤ��������Ƥ���Unix-Like��OS�ˤ�/usr/bin�����äƤ���Ȼפ��ޤ����������Ǥʤ����Ǥ⡢perl��������б��Ǥ��ޤ���

�¤�perl��pack()�ˤϤ����̱Ƥ��ĤäƤ��ơ�u��uuencode��format���б����Ƥ��ޤ�������Τ������ǡ���ñ��decoder�Ǥ���а�Ԥǽ񤱤ޤ���

perl -e 'print unpack("u",$_) while(<>)' encoded > decoded

�����������ξ���begin 644 filename����end�ޤǤιԤ�̤��Ƥ����ʤ���Ф����ޤ��󡣤⤦����������Ƚ񤯤ȡ��ʲ��ΤȤ���Ȥʤ�Ǥ��礦��

uudecode.pl
#!/usr/local/bin/perl
use strict;
use warnings;
my ($begin, $perm, $filename, $wfh);
while(<>){
    if (/^begin\s+([0-7][0-7][0-7])\s+(\S+)/o){
        ($begin, $perm, $filename) = (1, oct($1), $2);
        open $wfh, '>', $filename or die "$filename : $!";
    }elsif(/^end$/o){
        $begin = 0;
        close $wfh;
        chmod $perm, $filename;
    }
    next unless $begin;
    print $wfh unpack("u", $_);
}
__END__
uuencode.pl
#!/usr/local/bin/perl
use strict;
use warnings;
for my $filename (@ARGV){
    open my $rfh, '<', $filename or  die "$filename : $!";
    my $content  = eval{ local $/; <$rfh> };
    close $rfh;
    my $perm = (stat($filename))[2] & 0777;
    printf "begin %o $filename\n", $perm;
    print pack("u", $_) while($_ = substr($content, 0, 45, ''));
    print "`\nend\n";
}
__END__

���ʤߤˡ�����u�ե����ޥåȤϡ�Base64�ˤ�Ȥ��ޤ���

while(<>){
  tr#A-Za-z0-9+/##cd;
  tr#A-Za-z0-9+/# - _#cd;
  $len = pack("c", 32 + 0.75*length($_));
  print unpack(u", $len . $_);
}

�����㡢�饯���ܤ�unpack�������ˤϽФƤ���ΤǤ�����perldoc -f unpack�ǤϽФƤ��ޤ���ͤ���

�ޤ�����ʤȤ������ʡ�

¾�ˤ�shar�ʤ�ƤΤ⤢�ä��ʤ�....

Dan the uu(en|de)coder