Shift-JIS�e�L�X�g�𐳂�������
�ŋ߂̍X�V����
2005-03-26: �u�ŏ��Ɂv���AXML���{��v���t�@�C����2�łɊ�Â��A�኱�NjL�B 
2005-03-09: �u�ŏ��Ɂv���A���͂��኱�C���B 
2003-06-24: Shift-JIS�̊������܂ރt�@�C����/�p�X�� 
2003-05-31: �u�ŏ��Ɂv���A�u�V�t�gJIS�v�Ȃǂ̕\�L�ɂ‚��āB 
2003-05-24: CP932�d����`�����̕ϊ� 
2002-08-30: Perl 5.8.0 �ɂ‚��āB 
2002-01-17: ����������ɑ΂��鐳�K�\������ 
2001-12-15: ShiftJIS::Collate �� overrideCJK �p�����[�^��p�~�������Ƃɔ��� ���{�ꕶ�������ёւ���̏��������B 
�ŏ��� 
���肪���ȃG���[ 
�G���[��ԈႢ��h���΍� 
�����񃊃e�����̍��� 
���K�\���ƃ}�b�` 
�O���[�o���}�b�` 
�A���t�@�x�b�g�̑啶���Ə����� 
����������ɑ΂��鐳�K�\������ 
�O���̕ϊ� 
CP932�d����`�����̕ϊ� 
�������𐔂��� 
�����P�ʂɕ������� 
���낢��ȕ��� 
����̒����Ő؂肻�낦�� 
���{�ꕶ�������ёւ��� 
Shift-JIS�̊������܂ރt�@�C����/�p�X�� 
�ŏ���
���{��̕����R�[�h�ɂ͂����‚��̂��̂��g���Ă��܂��B������x��ʓI�Ȃ��̂Ȃ�A�ǂ���g���Ă��悢�ł��傤�i�ǂ̕����R�[�h�ŕ���������Ă��邩�̏�񂪎���ꂳ�����Ȃ���΁j�B
�Ⴆ�΁A���{���Windows�ł́A�������ł�DOS���ł�Shift-JIS���g���Ă��܂��B���������ꍇ�A�����̓r���ł킴�킴EUC-JP��UTF-8�ɕϊ�����Ƃ�����ʓ|�ł��B�f�o�b�O�̂Ƃ��A�u���̒i�K�ł͂��̕ϐ��ɂ͉��������Ă���̂��v�o�͂��ē_������̂͂悭�s���܂����A���̂Ƃ�EUC-JP�Ƃ��Ď��߂��Ă�����A��Ƃ͎�Ԃǂ�ł��傤�B���͂��o�͂�Shift-JIS�ōs���‚���Ȃ�A�����̑S�̂�Shift-JIS�̂܂܈������炫���ƕ֗��ł��傤�B
���F "�V�t�gJIS", "Shift_JIS", "Shift-JIS" �Ȃǂ̕\�L�̈Ⴂ�ɂ‚��Ă͂悭�킩���Ă��܂���B���̂Ƃ��땪�����Ă��邱�Ƃ́F
JIS X 0208:1997�̕�����1�i�V�t�g�������\���j�ɂ́A�u�Q�l�v�Ƃ��āu���̕������\���͒ʏ�g�V�t�gJIS�R�[�h�h�ƌĂ΂�Ă���v�̋L�q������܂��B 
IANA �� CHARACTER SETS �ɂ́AShift_JIS �� Windows-31J �Ƃ��ʂɓo�^����Ă��܂��B�܂��AShift_JIS�ɂ‚��āA�uCCS�i�����������W���j��JIS X0201:1997��JIS X0208:1997�ł���A���S�Ȓ�`��JIS X 0208:1997�̕�����1�Ɏ�����Ă���B�v�ƋL���Ă��܂��B 
W3C �� XML Japanese Profile �ɂ́AShift-JIS��Unicode�ւ̕ϊ��\����������|�̋L�ڂ�����܂��BXML Japanese Profile (Second Edition)�ł́AUnicode Consortium�Ō��J����Ă���Microsoft CP932�̕ϊ��\�ɂ��charset�̖��� "x-sjis-cp932" �� "Windows-31J" �ɕύX���Ă��܂��B 
Microsoft�Ђ� Global Dev �ł́ACodepage 932 �� "Japanese Shift-JIS" �ƒ��L���Ă��܂��B 
�������AShift-JIS�ɂ͂����̕Ȃ������āA������Ƃ������Ƃ��o�O��G���[�╶�������̌����ƂȂ�܂��B�Ȃ�Ƃ��Ȃ�Ȃ����̂ł��傤���B
Perl�͐��䕶����i���������܂ރo�C�i���f�[�^�ł��琳���������ł���悤�ɐ݌v����Ă���̂ŁA�X�N���v�g��e�L�X�g��Shift-JIS�ŏ��������炢�Ŗ��ɂȂ邱�Ƃ͂���܂���B
�������Aperl���X�N���v�g�����߂���Ƃ��́i�ʏ�j�o�C�g�P�ʂŒ��ׂ�̂ŁAShift-JIS�̂悤�ȃ}���`�o�C�g�������܂ޕ����͂��̂܂܂ł͒��ڗ����ł��܂���B
���Ƃ��΁AShift-JIS�� '��' �Ƃ��������́A16�i����82 A0�Ƃ����Q�o�C�g�ŕ\����܂��B����� "\x82\xA0" �Ə����Ă�perl�ɂƂ��Ă͓����ł��B���ꂪ���{�́icountry�j���{��́ilanguage�j�����ł���Ƃ��AShift-JIS�ŏ�����Ă���icharset�j�Ƃ��������͂ǂ��ɂ��܂܂�Ă��܂���B
���̂��߁AShift-JIS�ŏ��������Ƃ��ɂ́Aperl�̌�����󂯂Ȃ��悤�ɏ����Ă��Ȃ���΂Ȃ�܂���B���̔z���́A�v���O���}�����Ă��Ȃ���΂Ȃ�܂���B���̕����̋L�q�́A���̂悤�Ȏ�Ԃ������Ă��AShift-JIS��p���邱�ƂɈӋ`������ƍl���Ă���l�ɂ͎Q�l�ɂȂ邩������܂���B
����Ȏ�Ԃ��|�������Ȃ��l�́A 
Perl 5.8.x�ȍ~���g���B 
���_�Fperl5-porters@perl.org �ŃT�|�[�g����Ă���B 
���_�F�Ɠ��̍l����������A�]���̓��{�ꏈ���Ƃ͑��e��Ȃ��Ƃ��낪����i�����Ƃ��A���̂�������ċC�ɂȂ�Ȃ��Ȃ邩������Ȃ��j�B 
jperl���g���B 
���_�FShift-JIS �𕶎��Ƃ��Ē��ڈ������Ƃ��ł���B 
���_�F���݁A�ێ�����l�����Ȃ��B 
�����R�[�h��UTF-8��EUC-JP�ɕϊ����Ă��珈������B 
���_�FPerl 5.8.x�ȍ~�łȂ��Ă����삷��ϊ��p�̃��W���[��(.pm)�⃉�C�u����(.pl)�����낢�����”\�B 
���_�FShift-JIS�قLj����Ȃ��ɂ��Ă��A�}���`�o�C�g�������V���O���o�C�g�����Ƌ�ʂ����A�Ƃ��Ɉꕶ���Ƃ��ď�������͖̂ʓ|�ł���B 
 �Ƃ����Ώ����Ƃ����ق����悢�ł��傤�B�����̃v���O�����͗L���Ȃ̂ŁA�T���΂������‚���ł��傤����A�����͂����ɂ͎����܂���B
�Ȃ��A���̕����ɏ�����Ă��鎖���A�ł����߂��Ȃ����@�Ȃ̂ŁA���������́A���̂‚���ł��ǂ݉������B���̕��@�ɂ‚��ĉ����^�₪�������Ƃ��Ă��A����ɂ‚��đ��̂Ƃ���Ŏ��₷��ƁA���ł���Ȃ��������Ă���̂��ƁA�����Ɣ����ł��傤�B���Ƃ����āA���ɂ��u���Ȃ��ʼn������B
Shift-JIS���g�����Ƃ��ɂ��肪���ȁi�H�j�G���[
Shift-JIS�ɂ́A��Q�o�C�g�� [@-~]�iASCII 10�i����64-126�j�͈̔͂ɓ�����̂�����܂��B������ASCII�����́Aperl�ɂƂ��ē��ʂȈӖ������‚��Ƃ����邽�߁A���΂��΃G���[�̌����ƂȂ�܂��BShift-JIS�ł́A�Q�o�C�g�����̑�Q�o�C�g�́A[\x40-\x7E\x80-\xFC])�͈̔͂ɂ��邽�߁A����188����63�A��R���̂P�̕��������炩�̖����N��������Ƃ����܂��B
���ɁAShift-JIS���g�����Ƃ��ɋN���肪���ȃG���[�Ƃ��̌����������܂��B�G���[���b�Z�[�W��perl�̈Ⴂ�i�o�[�W������ǂ̃v���b�g�t�H�[���p�̂��̂ł��邩���j�ɂ�葽���̈Ⴂ�����邩������܂���B
�G���[�ɂȂ�Ȃ��Ă��A��������������A���҂����悤�ȓ�������Ȃ�������ŁA���܂������Ȃ����Ƃ�����܂��B���̏ꍇ�A�G���[���o�Ȃ����A�����������ŒT���Ȃ���΂Ȃ�Ȃ��Ȃ邽�߃o�O���͂��΂��΍���ł��B
�����ł̓G���[�ɑ΂���΍�͒񎦂��܂���B�΍�͂��Ƃł܂Ƃ߂ď����܂��B
�Ȃ��A�����ɂ͕����R�[�h��EUC-JP�ɂ��Ă��N����悤�Ȗ���G���[�͎����܂���B��{�I�ɁAEUC-JP�Ȃ�N���Ȃ����AShift-JIS�̂Ƃ��ɂ͋N����悤�Ȏ����Ɍ���܂��B
�G���[�ɂ͂Ȃ�Ȃ����Ǖ�����������i�P�j 
�Ⴆ�΁A"�\��" �Ƃ� "�\��" �Ƃ��������e�����������������N�����܂��B������ "���" �Ƃ� "���" �ɂȂ�܂��B����́A"�\" �� "�\"�̕����̑�Q�o�C�g�� \ �ł��邽�߁A�_�u���N�I�[�g�����̒��ł͎��̕����̃G�X�P�[�v�����邱�ƂɂȂ�̂ŁA�\�� �� 0x955C8EA6 �ł����Ă��A�N�I�[�g�̌��ʂ� "�\��" �� 0x958EA6 �ƂȂ邩��ł��B'�\��' �Ƃ���Ε��������͋N����܂��񂪁A�V���O���N�I�[�g�ł��h���Ȃ�����������G���[������܂��i����j�B 
�G���[�ɂ͂Ȃ�Ȃ����Ǖ�����������i�Q�j 
�Ⴆ�΁A"�~�\\500" �Ƃ������e�����ł́A\ ���E�����Ă��܂��܂��B����́A'�~�\\500' �� q(�~�\\500) �ȂǂƂ��Ă��h�����Ƃ��ł��܂���B����� \\ �Ƃ����A��������� \ �P�‚ɂȂ��Ă��܂��Ƃ����K�������邩��ł��B 
�N�I�[�g��N�I�[�g�����Z�q�̒��ł́A������ɃN�I�[�g�Ɠ����������܂߂���悤�ɁA\ �ɂ��G�X�P�[�v��t����΃N�I�[�g�̏I�[�����ł͂Ȃ��A������̈ꕔ�Ƃ݂Ȃ��܂��B���̂��߁A\\ �� \ �̕�����\���G�X�P�[�v�ɂȂ�܂��B����̓N�I�[�g�̎n�[�E�I�[���������ɂ��Ă��������Ƃł��B
�G���[�ɂ͂Ȃ�Ȃ����Ǖ�����������i�R�j 
�Ⴆ�΁A"�ۏ\net" �Ƃ������e�����������������N�����܂��B����� "�ۥ
et" �̂悤�ɓr���ʼn��s����Ă��܂��܂��B����́A"�\" �̑�Q�o�C�g�� \ �ł��邽�߁A�_�u���N�I�[�g�����̒��ł͎��� 'n' �ƍ��킹��\n�̂��Ȃ킿���s������\�����^�����Ƃ��ĉ��߂���邩��ł��B 
�G���[�ɂ͂Ȃ�Ȃ����Ǖ�����������i�S�j 
�Ⴆ�΁A"�����@ARGV" �Ƃ������e�����������������N�����܂��B����́A"�@"�i�S�p�X�y�[�X�j�̑�Q�o�C�g�� @ �ł��邽�߁A�_�u���N�I�[�g�����̒��ł͎��� ARGV �ƍ��킹�� "@ARGV" �Ƃ����z��Ƃ��ĕϐ��W�J���s������ł��B@ARGV�̂悤�ɕK����`�����悤�Ȕz��Ȃ�A�W�J����܂����A�ʂ̏ꍇ�ł̓G���[�ɂȂ邩������܂���i����͎������Q�Ɓj�B 
In string, @dog now must be written as \@dog (Perl 5.6.0�܂�) 
�u������̒��ł́A@dog�͍���\@dog�Ə����Ȃ���΂Ȃ�Ȃ��v 
�O��ł݂��悤�ɁA�S�p�X�y�[�X "�@"�̑�Q�o�C�g�� @ �ł��邽�߁A���̕����ƍ��킹�Ĕz��ł��邩�̂悤�ɉ��߂��悤�Ƃ��܂��B"���@dog" �̂悤�ȏꍇ�A@dog �Ƃ����z�񂪒�`����Ă���΂����p���ĕϐ��W�J���܂����A��`����Ă��Ȃ��ꍇ�A�G���[���b�Z�[�W���o���܂��B 
``now must be written as''�u���͂��������Ȃ���΂Ȃ�Ȃ��v�Ƃ́APerl4�܂ł͔z��̕ϐ��W�J�͍s��Ȃ��������߁A"hoge@foo.bar" �̂悤�ȏ����������邱�Ƃ��ł����̂����A�� Perl�ł� @foo ���W�J����Ă��܂��̂ŁA���ӂ����N���邽�߃G���[���o���悤�ɂ��Ă���悤�ł��i����Perl���̂���z��̓W�J���T�|�[�g���Ă�����A�G���[���o�����ƂȂ��A�ق��ēW�J���邾����������������܂���B�������Q�Ɓj�B
"���@\dog" �Ƃ���΂����Ƃ����ӌ�������܂����A\d �����^�����Ƃ��ē��ʈӖ����Ȃ����߂ɂ��܂������̂ł����āiPerl 5.6�ȍ~�ł́A�x�� Unrecognized escape \d passed through �u�F���ł��Ȃ��G�X�P�[�v \d ���n���ꂽ�v�������N�����܂��j�A�Ⴆ�� "�ԁ@\flower" �̂Ƃ��́A\f �����y�[�W�����Ƃ��ĉ��߂���A�����������܂��B
Possible unintended interpolation of @dog in string (Perl 5.6.1�ȍ~) 
������̒��ŁA@dog���\�������ɓW�J����� 
�O���Ɠ������A"���@dog" �ł����APerl 5.6.1�iActivePerl 626�j�ȍ~�ł́A��`����Ă��Ȃ��z��ł��ق��ēW�J���܂��B�z�� @dog ���W�J�����̂ŁA"��\x81" �Ɠ����ɂȂ�܂��B 
����̓G���[�ł͂Ȃ��A�x���ɂȂ�܂��B
Can't find string terminator '"' anywhere before EOF 
�u�I�[���� '"'���t�@�C���̏I�� EOF �܂łɌ��‚���Ȃ������v 
�Ⴆ�΁A"�Ή��\" �̂悤�ȃ��e�����ł́A'�\' �̑�Q�o�C�g�� \ �ł��邽�߁A������� " ���G�X�P�[�v���Ă��܂��܂��B���̂���perl�́A���� " �̓N�I�[�g������̏I�[�����Ƃ݂͂Ȃ����ɁA�����񂪂���ɑ����ƍl���Ă��܂��܂��B����ȍ~�A�X�N���v�g�̒��� " �̕������S���܂܂�Ȃ���΁A���̂悤�ɃG���[�񍐂����܂��B 
qq{ "���{��" }�̂悤�ȏꍇ�ɂ����ӂ��Ȃ���΂Ȃ�܂���B"�{" �̑��o�C�g�� { �Ȃ̂ŁA���̂܂܂ł� { }�̃l�X�g������Ă��܂��A���l�̃G���[���������܂��B
Bareword found where operator expected 
�u���̌ꂪ���Z�q�������Ăق����ʒu�Ɍ��‚������v 
�Ⴆ�΁Aprint "<img alt=\"�Ή��\\" height=115 width=150>"; �̂悤�ȏꍇ�A\" �ɂ����p���̃G�X�P�[�v�́A�\ �̑�Q�o�C�g��\�̂��߁A\\ " �Ƃ����g�ݍ��킹�ɂȂ�A�G�X�P�[�v���ł�������Ă��܂��B���̂��߁A���̃��e�����́Aperl���猩��ƁA"<img alt=\"�Ή��\\" �ŏI����Ă��܂��B���̂��߁A���e�����̌�ɁAheight �Ƃ����u���̌�v�i�N�I�[�g�ň͂܂�Ă��Ȃ�������j������悤�ɂ݂āA�����ɂ͗��̌�ł͂Ȃ��A���Z�q������ׂ��ł͂Ȃ����H��perl�͍l���܂��B 
Unrecognized character \x82 
�u�F������Ȃ����� \x82�v 
����́A��ASCII�����₻�̑��̕������u���̌�v�ɂ����Ƃ��ɏo�郁�b�Z�[�W�ł��B"�Ή��\" �̂悤�ȃ��e�����������āA���̂��Ƃ� "�Ȃ�ł���������" �̂悤�ȃ��e�������������Ƃ��A�O��Ɠ������R����N������̂ł��B 
�܂��Aq{�}�b�`} �̂悤�ȏꍇ�ɂ��A'�}' �̑��o�C�g�� } �Ȃ̂ŁA{ } �̃J�b�R�͂����ŏI����Ă��܂��A���l�ȃG���[�ɂȂ�܂��B
�}�b�`���Ȃ��͂��Ȃ̂Ƀ}�b�`����i�P�j 
"���J��" =~ /�|�b�g/ �̓}�b�`���܂��B����́A'�|' �̑��o�C�g�� | �Ȃ̂ŁA/�|�b�g/ �� /\x83|�b�g/ �Ƃ݂Ȃ���A\x83 �����}�b�`����΂悢����ł��B 
�}�b�`���Ȃ��͂��Ȃ̂Ƀ}�b�`����i�Q�j 
"�Z��" =~ /Z/ �̓}�b�`���܂��B����́A'�Z' �̑��o�C�g�� 'Z' ������ł��B���o�C�g���A���t�@�x�b�g�ɂȂ镶���ɂ͒��ӂ��K�v�ł��B 
�}�b�`����͂��Ȃ̂Ƀ}�b�`���Ȃ��i�P�j 
"�^�]�Ƌ�" =~ /�^�]/ �̓}�b�`���܂���B����́A'�^' �̑��o�C�g�� '^'�Ȃ̂ŁA/�^�]/ �� /\x89^�]/ �Ƃ݂Ȃ���A������̎n�� ^ �̑O�� \x89 �͂Ȃ�����ł��B 
Search pattern not terminated 
�u�T�[�`�p�^�[�����I�����Ȃ��v 
����́A/�\/ �̂悤�ɁA���o�C�g�� \ �ł��镶���ŃT�[�`�p�^�[�����I��点�悤�Ƃ����Ƃ��ɋN����܂��B�}�b�`���Z�q�̏I�[���� / ���G�X�P�[�v���Ă��܂��̂ŁA�T�[�`�p�^�[��������ɐ�ɑ����悤�ɉ��߂���܂��B���̐�ɂ�����x/�͂���܂����H 
�������Ƃ���ŁA�ʂ̃G���[����������ł��傤�B
Substitution replacement not terminated 
�u�u������̒u�������񂪏I�����Ȃ��v 
�u�����Z�q�� s/PATTERN/REPLACEMENT/�̌`�����Ƃ�˂΂Ȃ�܂���B������ s/�\/��/; �̂悤�ɁA���o�C�g�� \ �ł��镶����PATTERN�������I��点�悤�Ƃ����Ƃ��ɂ��̃G���[���N����܂��B�}�b�`���Z�q�̏I�[���� / ���G�X�P�[�v���Ă��܂��̂ŁAPATTERN������ɐ�ɑ����悤�ɉ��߂���܂��B���̂���perl�́APATTERN�� �\/�� �̕����ł���ƍl���A�R�Ԗڂ�/�̐��REPLACEMENT����������ɈႢ�Ȃ��Ǝv���̂ł����A���̐�ɂ�����x/�͂���܂����H 
�������Ƃ���ŁA�ʂ̃G���[����������ł��傤�B
unmatched [ ] in regexp 
�u���K�\���Ƀ}�b�`���Ȃ� [ ] ������v 
�Ⴆ�΁A/�v�[��/ �ł̓G���[���N����܂��B����� '�[' �̑��o�C�g�� [ �Ȃ̂ŁA/�v�[��/ �� /�v\x81[\x83\x8B/ �Ƃ݂Ȃ���Aperl�͕����N���X������̂ł͂Ȃ����Ǝv���܂��B�����������N���X�̏I�������� ] �����‚���Ȃ��̂ŃG���[�ɂȂ�܂��B 
�G���[�ɂ͂Ȃ�Ȃ����Ǖ�����������i�T�j 
�Ⴆ�΁Alc('�A�C�E�G�I')�́A'�a�c�e�g�i'��Ԃ��܂��BShift-JIS�̂Q�o�C�g�����̒��ɂ́A��Q�o�C�g��ASCII�ʼnp���ɓ�������̂�����܂��B�ڂ����̓A���t�@�x�b�g�̑啶���Ə������������������B 
�G���[��ԈႢ��h���΍�
�ȏ�̂悤�ȃG���[��h���ɂ͂��܂��܂ȕ��@���l�����܂��B�Ⴆ�΁A"�\\��" �Ə����΂����ȂǂƂ�����Ă�����܂��B������񂻂�ł����܂��܂���B���������̂��߂ɂ͂ǂ̕����̌�� \ ������΂�������m��K�v������܂��B����͕����R�[�h�\������Έꔭ�Ŗ��炩�ł��B
�c�ȂǂƂ����ʓ|�Ȃ��Ƃ���ɂȂ�Ȃ��l�A�����R�[�h�\�Ȃ񂩁i���Ȃ��Ƃ����ɂȂ�悤�ȕ������炢�́j�ËL���Ă��܂��΂����Ƃ����悤�Ȑl�ɂƂ��ẮA�m���ɂ���ʼn����ɂȂ�Ǝv���܂��B�������A���̂悤�Ȑl�ɂ́A����ȃy�[�W�����ɂ���K�v���q�}���Ȃ��ł��傤�B
�����ŁA���̂悤�ȃy�[�W���킴�킴���ɂ���悤�Ȑl�́A�����R�[�h�\�������������ׂ����Ȃ��ЂƂ��Ɖ��肵�܂��B�ʂɂ���������Ƃ����Ĕ���邱�Ƃ͂���܂���B�������A��Ԃ�ɂ��ނ��܂�Ԉ�����v���O�����𕽋C�ō���Ă��ẮA��ɃN���[���p�C���Ԃ‚����Ă��d������܂���B
�����񃊃e�����̍���
�悭�m���Ă����˂΂Ȃ�Ȃ����Ƃ́A\ �Ƃ����G�X�P�[�v�p�̕����́A�ϐ��W�J�⃁�^�����̉��߂�肸���ƑO�̒i�K�ł��܂��܂ȉe�����y�ڂ��Ƃ������Ƃł��B���̂��߁A�ǂ�������f�[�^���m���ɕϐ��̒��Ɏ��߂��邩���l����K�v������܂��B�ϐ��̓����Ɏ��߂Ă��܂��΁APerl���f�[�^��K�؂ɊǗ����Ă���܂��B�悭�m���Ă��� $str = "�\��" �̕����������A�ϐ�$str�ɑ������ȑO�A�_�u���N�H�[�g�ň͂񂾎��_�ł��łɕ����������Ă���ƍl����ׂ��ł��B���łɕ������������f�[�^�������āA�D�����ʂ�������͂�������܂���B
�q�A�h�L�������g�͈��S���̍��������@�ł��B�������A�I�[��������V���O���N�H�[�g�ň͂�ł��Ȃ��Ă͂Ȃ�܂���B�_�u���N�H�[�g�ň͂񂾂�A�N�H�[�g��t���Ȃ�������ł́A�\�����ʕϐ��W�J�⃁�^�����̉��߂�h�����Ƃ��ł��܂���B
�V���O���N�H�[�g�ŏI�[��������͂񂾃q�A�h�L�������g�ł́A�ϐ��W�J�⃁�^�����̉��߂͉����N����܂���B�����A�I�[������i���̏ꍇ�� "\nEOF\n"�j��T�����Ƃ������s���܂��B�q�A�h�L�������g���g���ƕ�����ɉ��s�������‚��܂����Achomp�ŏ����Ƃ����ł��傤�B
���̗�� $str = '�����Ƀe�L�X�g������' �Ɠ����悤�ɓ����܂����A������̓��e�ɂ���Ė�肪�N����܂���B�������Ƃ���Ƀ��e���������ł���Ɗ��҂ł��܂��B
�T���v���R�[�h 
chomp($str = << 'EOF');
�����Ƀe�L�X�g������
EOF

$src = << 'EOF';
  $path = "C:\\path\\file";
  open FH, $path;
EOF

�����̕��������x�ɍ�肽����΁Asplit�ŕ�������Ɨe�Ղɍ��܂��B
�T���v���R�[�h 
($name, $career, $age, $memo) = split "\n", << 'EOF';
�c����Y
�v���O���}
�O�\��
�啟���D���ł���B  ���͂��܂�ۂ܂Ȃ��B
EOF

���������Ȍ��ɏ���������΁A�󔒕����A\�i�Q�o�C�g�����Ɋ܂܂�Ă���͍̂\��Ȃ��j�A����уJ�b�R���܂܂Ȃ��Ƃ��������ŁAqw() ���g�����Ƃ��ł��܂��B�Ⴆ�΁A@str = qw(�\�� �Ή��\ );�̂悤�ɋ󔒂����ăJ�b�R�̃G�X�P�[�v��h���܂��B@str = qw(�\�� �Ή��\);�̂悤�ɋ󔒂����Ȃ��ƃG���[�̌��ł��B
�P�‚̕��������鎞�ł��A���ӂ��ۃJ�b�R�ň͂�Ń��X�g�R���e�L�X�g���������A�E�ӂ��X���C�X�ɂ��邩���Ȃ���΂Ȃ�܂���B����́A�i����ł́jqw// �� split(' ', q//) �̗��L�Ƃ��Ď������Ă��邩��ł��B�Ȃ��APerl 5.6�ł̓��X�g�Ɠ����ɂȂ��Ă���悤�ł��B
�T���v���R�[�h 
($str) =  qw(�S�O�\ );
 $str  = (qw/�S�O�\ /)[0];
 $str  =  qw/�S�O�\ /; # Perl 5.6

���K�\���ƃ}�b�`
���K�\���̃��^�����͑����̂ŁA���K�\���̒���Shift-JIS�̕�����𖄂߂��ނ͓̂���ł͂���܂���B�Ⴆ�΁A/\Q�Ή��\/ �ł̓G���[�ɂȂ�܂��B����́A/ / �͈̔͂̌��肪�^����ɍs���A���̎��_�ŃG���[����������̂ŁA\Q �̌��ʂ��y�ڂ����Ƃ��ł��Ȃ�����ł��B�܂��A/\Q�Ή��\\E/ �͍I���s���܂���B����́A�Ή��\\E �Ƃ�����������܂ނ��̂ɂ����}�b�`���܂���B����́A\\ �Ƃ����A�������邽�߁A\E ���F������Ȃ�����ł��傤�i���Ԃ�j�B
���̂��߁A�ϐ��ɓ���āA�}�b�`���Z�q��u�����Z�q�̒��œW�J������Ƃ�낵���ł��B���̂Ƃ����{�ꕶ����͗\��quotemeta �֐��ŏ������Ă����܂��B
�T���v���R�[�h 
$pat = quotemeta +(qw/ �\ /)[0];
$str =~ /$pat\d+/; # �\1, �\2, ..�ȂǂɃ}�b�`
  # ������ $str = '��\\1' �ł��}�b�`����i���̖��͌�q�j

��̂悤�ȏ������͊m���ɏX���ł��ˁB�N�I�[�g�̒��� \Q \E ���g�����́A�����������񂪓����Ă���ϐ��ƈꏏ�ɂȂ��肪�N����܂���B�������邱�ƂŁA\Q \E �͈̔͂����m�ɂȂ邩��ł��B������������̍����́A�O�q�̃��e�����̍�肩�����Q�l�ɂ��ĉ������B
�T���v���R�[�h 
$pat = "(?:\Q$str1\E|\Q$str2\E)*";
$str =~ /$pat/;

# ���͏�̕��͎��̕��Ɠ����B
# $pat = "(?:" . quotemeta($str1) . "|" . quotemeta($str2) . ")*";

���e�������N�H�[�g�̒��ɒ��ږ��߂��ނƂ��܂��s���Ȃ����Ƃ�����܂��B����́Aperl�� \E �Ƃ������^�����𔭌����悤�Ƃ����̂��AShift-JIS�������W���邽�߂ł��B
"\Q�\\E"�ł́A�\E�Ƀ}�b�`���鐳�K�\���ɂȂ�܂��B�\�̑��o�C�g�� \ �Ǝ��� \�����킳��̂ŁAperl�ɂ�\Q \x95 \\ E�̑g�ݍ��킹�ł���悤�Ɏv���܂��B \Q�̍�p�̌��ʂ�\\x95\\x5cE�ɂȂ�܂��B���̂��߁A�\E�Ƀ}�b�`���܂��B
"\Q�\"�͂ǂ��ł��傤�B���̏ꍇ�́A" " �͈̔͂����߂�Ƃ��ɁA�\�̑��o�C�g����̃N�H�[�g���G�X�P�[�v���Ă��܂��̂ŁA������͈̔͂����҂����悤�ɂ͒�܂炸�A�G���[�ɂȂ�܂��B���̃G���[��\Q�̌��ʂ��l������O�ɔ�������̂ŁA�h���悤������܂���B
"\Q�\\\E"�͂ǂ��ł��傤�B�m����Shift-JIS�ł͖�肠��܂���B�����������X�N���v�g��EUC-JP��UTF-8�ɕϊ������Ƃ��ɂ͖�肪����܂��B�\\E�Ɨ]���ȂQ���������镶����łȂ��ƃ}�b�`���܂���B�ǂ���ɂ���A\���ǂ��ɓY���邩���l����K�v������̂ŁA�����̎�|�ɍ����܂���B
���K�\���͗Ⴆ�΁A���̂悤�ɂ��܂��B������񂱂��Shift-JIS�݂̂ɗL���ł��B
    $digit = '(?:[0-9]|\x82[\x4F-\x58])'; # �����i���p�ƑS�p�j
    $upper = '(?:[A-Z]|\x82[\x60-\x79])'; # �A���t�@�x�b�g�啶���i���p�ƑS�p�j
    $lower = '(?:[a-z]|\x82[\x81-\x9A])'; # �A���t�@�x�b�g�������i���p�ƑS�p�j
    $space = '(?:[\ \n\r\t\f]|\x81\x40)'; # �󔒕����i���p�ƑS�p�j
    $ascii = '[\x00-\x7F]';               # ASCII����

    # �S�p�������i���_�E�����_�E�x�莚���܂ށj
    $hiraZ = '(?:\x82[\x9F-\xF1]|\x81[\x4A\x4B\x54\x55])'; 

    # �S�p�Љ����i�������E���_�E�����_�E�x�莚���܂ށj
    $kataZ = '(?:\x83[\x40-\x7E\x80-\x96]|\x81[\x5B\x4A\x4B\x52\x53])';

    # ���p�Љ����i���p�������E��Ǔ_���܂ށj
    $kataH = '[\xA1-\xDF]';

    $onebyte = '[\x00-\x7F\xA1-\xDF]';
    $twobyte = '(?:[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])'; 
    $char    = '(?:[\x00-\x7F\xA1-\xDF]|[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])';

    # JIS����
    $all_JIS = '(?:[\x00-\x7f\xa1-\xdf]|'.
        . '\x81[\x40-\x7e\x80-\xac\xb8-\xbf\xc8-\xce\xda-\xe8\xf0-\xf7\xfc]|'
        . '\x82[\x4f-\x58\x60-\x79\x81-\x9a\x9f-\xf1]|'
        . '\x83[\x40-\x7e\x80-\x96\x9f-\xb6\xbf-\xd6]|'
        . '\x84[\x40-\x60\x70-\x7e\x80-\x91\x9f-\xbe]|'
        . '\x88[\x9f-\xfc]|\x98[\x40-\x72\x9f-\xfc]|\xea[\x40-\x7e\x80-\xa4]|'
        . '[\x89-\x97\x99-\x9f\xe0-\xe9][\x40-\x7e\x80-\xfc])';

    # �x���_��`����

    # NEC���ꕶ��
    $NEC_special = '(?:\x87[\x40-\x5d\x5f-\x75\x7e\x80-\x9c])';

    # NEC�I��IBM�g������
    $NEC_IBM_ext = '(?:\xed[\x40-\x7e\x80-\xfc]|\xee[\x40-\x7e\x80-\xec\xef-\xfc])';

    # IBM�g������
    $IBM_ext     = '(?:[\xfa-\xfb][\x40-\x7e\x80-\xfc]|\xfc[\x40-\x4b])';


Shift-JIS�Ń}�b�`���s�����ɂ́A�Q�‚̖�肪����܂��B
���o�C�g��ASCII�̗̈�ɓ��镶��������̂ŁAASCII���܂ރp�^�[���Ƀ}�b�`����”\��������B 
���镶���̑��o�C�g�Ǝ��̕����̑��o�C�g���P�����ł��邩�̂悤�Ƀ}�b�`���Ă��܂��B 
��҂�EUC-JP�ł��N���肤����ł��iUTF-8�Ȃ�N����Ȃ����A���͂��ꂪ���Ȃ̂ł͂Ȃ��j�B�������O�҂�EUC-JP�ł͋N����Ȃ����AShift-JIS�ł͋N���肤����ł��B������h�����@�́A���Ǔ������Ƃł����A���K�\���̒��ɁA��ɐ擪���܂܂��邱�Ƃł��B
�T���v���R�[�h 
# �擪����}�b�`
$str =~ /^$char*?(?:$pat)/;

��������̃}�b�`�ł͂��܂��s���Ȃ����Ƃ�����܂��B"�E" =~ /E$/���l����Ώ\���ł��傤�B�܂��A"\x8E" x 30 . "E"��$str = "������������������������������E"�ł��邪�A"\x8E" x 31 . "E"��$str = "�������������������������������E"�ł���܂�����AShift-JIS���������납��؂蕪����K�؂ȕ��@�͂Ȃ��ƍl�����܂��B
���Ȃ��Ƃ��A�Q�o�C�g�������\�����Ȃ��o�C�g [\x00-\x3F\x7F] �����‚��鏊�܂ŁA�ɒ[�ȏꍇ�͕�����̍ŏ��܂ŃX�L�������Ȃ��Ƃ킩�炸�A��������ǂ� lookbehind �̐��K�\�� (?<=PATTERN)�͍��̏��A�s�蒷�ɂł��܂���i(?<=(?:\A|[\x00-\x3F\x7F])$char*) �Ƃ͂ł��Ȃ��j�̂ŁA�擪���當���P�ʂł΂炵�Ă��珈������̂��A���ǂ͊ȕւȂ̂�������܂���B
�O���[�o���}�b�`
�O���[�o���}�b�` /g �̏ꍇ�́A\G���g���܂��傤�B\G�͑O��}�b�`���������̖������w���܂��B
���̗�ł́A�u������Ȃ��̂��]�܂����̂ł����A\G���Ȃ��̂ŁA�擪����J�n���ĕ�����S�̂܂ʼn��тă}�b�`���Ȃ��������ƁA���߂Đ擪����P�o�C�g�i�񂾈ʒu����X�L�������ĊJ����̂ŁA���ꂽ�ʒu�Ȃ̂Ƀ}�b�`�����ƍl���Ă��܂��܂��B\G���g��Ȃ��ƁA�Ԉ�����ʒu�Ƀ}�b�`���邩������Ȃ������ɁA�]�v�ȍČ���������̂ŁA���Ԃ�������܂��B
�T���v���R�[�h 
    $str = '��������E��������E';
    $pat = '�E';
    $str =~ s/\G($char*?)($pat)/${1}E/og;
    # '��������E��������E' �̂܂܁i�������j�B

\G��t���Ȃ��ꍇ

    $str = '��������E��������E';
    $pat = '�E';
    $str =~ s/($char*?)($pat)/${1}E/og; # '�E' ������� 'E' �ɒu��
    print  $str;
    # '�������E�������E' �ɂȂ��Ă��܂��i���������j�B

�@�@�@�@��������E��������E
�P��ځ@��������/��������/  �i�}�b�`���Ȃ��j
�Q��ځ@|��������|||||||||  �i�}�b�`�����̂Œu���j
�R��ځ@|||||||||��������/  �i�}�b�`���Ȃ��j
�S��ځ@||||||||||��������  �i�}�b�`�����̂Œu���j

�@�}��F ���@$char���Q�o�C�g�����Ƀ}�b�`
�@�@�@�@�@/�@$char���P�o�C�g�����Ƀ}�b�`
�@�@�@�@ �ˁ@$pat���}�b�`
�@�@�@�@�@|�@�X�L�����͈̔͊O

�������A�p�^�[�����[���������Ƀ}�b�`����ꍇ�ɂ́A���ӂ��K�v�ł��B���̗�́A�u�A�v�̑O�� 'Z' ��������̂ł��B��P��͕����̂���i'�A' : 0x8341�ɑ΂���'��A' : 0x8B8341������ă}�b�`����j��h���ł��܂���B��Q��́A��̕��@�Łu����v��h�����Ƃ����̂ł����AZ �ւ̒u�����A�����ċN�����Ă��܂��B
����͑�R��̂悤�ɂ���K�v������܂��B����́A��Q��ł́u�Ȃ��H�v�ɏ������悤�ɁA�u������邩��ƍl�����܂��B
�T���v���R�[�h 
$str = "�A�C�E�G�A�A�C�E�A��A";

print +($temp = $str) =~ s/(?=�A)/Z/g, $temp;

print +($temp = $str) =~ s/\G($char*?)(?=�A)/${1}Z/g, $temp;

print +($temp = $str) =~ s/\G(\A|$char+?)(?=�A)/${1}Z/g, $temp;

���� 
5    Z�A�C�E�GZ�AZ�A�C�EZ�A�Z�A
7    Z�A�C�E�GZZ�AZZ�A�C�EZZ�A��A
4    Z�A�C�E�GZ�AZ�A�C�EZ�A��A

�Ȃ��H 
     �A   �C   �E   �G   �A   �A   �C   �E   �A   ��   A
1  \G Z
2  \G$char$char$char$char Z
3                      \G Z
4                      \G$char Z
5      �ȉ��A�ȗ�

�‚܂�A�O���[�o���}�b�`�ł́A�}�b�`���[���������łȂ��p�^�[���̑O�ɂ�\G($char*?)���A�[���������ł���p�^�[���̑O�ɂ�\G(\A|$char+?)������K�v������܂��B
�������A����ł��������i�H�j�}�b�`�������Ȃ��ꍇ������܂��B
�T���v���R�[�h 
$str = "0123000123";

print +($temp = $str) =~ s/0*/Z/g, $temp;

print +($temp = $str) =~ s/\G($char*?)0*/${1}Z/g, $temp;

print +($temp = $str) =~ s/\G(\A|$char+?)0*/${1}Z/g, $temp;
__END__
 9    ZZ1Z2Z3ZZ1Z2Z3Z
14    ZZ1ZZ2ZZ3ZZ1ZZ2ZZ3ZZ
 7    Z1Z2Z3Z1Z2Z3Z

����́A�p�^�[�����[���������Ƀ}�b�`������̂ł���ƁA/g�����̏�Ŗ����ɑ����݂��ďI�����Ȃ��Ȃ�̂�h�����߁Aperl�́A�}�b�`�������I�ɐi�߂Ă���̂ł����icf. perlre, Repeated patterns matching zero-length substring�j�A���̐i�ߕ��̐^���i�������o�C�g�P�ʂł͂Ȃ��A�����P�ʂŐi�ނ��́j���A\G($char*?)��\G(\A|$char+?)�ł́A���܂��ł��Ȃ�����ł��B�����Ƃ����������}�b�`�����邱�Ƃ́A�قƂ�ǂȂ��ƍl�����܂��̂ŁA�C�ɂ���K�v�͂Ȃ��̂����m��܂���i�������ɂ��݁j�B
�A���t�@�x�b�g�̑啶���Ə�����
Shift-JIS�̂Q�o�C�g�����̒��ɂ́A��Q�o�C�g��ASCII�ʼnp���ɓ�������̂�����܂��B���̂��߁A�֐� uc, lc ��A���^���� \U, \L���Q�o�C�g�����̈ꕔ��ϊ����Ă��܂�����i�������֐� ucfirst, lcfirst �� ���^���� \u, \l �͖��ƂȂ�Ȃ��j�Am//i �� s///i�Ȃǂ� /i�C���q�ɂ���ĈႤ�����Ȃ̂Ƀ}�b�`���Ă��܂����肷�邱�Ƃ�����܂��B
Shift-JIS������Ɋ܂܂��ASCII�̉p����啶���܂��͏������ɑ��������Ȃ�A�Ⴆ�΁A���̂悤�ȃT�u���[�`�������Ύ����ł��܂��B
�T���v���R�[�h 
$char = '(?:[\x00-\x7F\xA1-\xDF]|[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])';

lc("PERL�v���O���~���O");      # 'perl�v���o���~���o'
tolower("PERL�v���O���~���O"); # 'perl�v���O���~���O'

sub tolower {
  my $str = $_[0];
  $str =~ s/\G($char*?)([A-Z]+)/$1\L$2/g;
  $str;
}

sub toupper {
  my $str = $_[0];
  $str =~ s/\G($char*?)([a-z]+)/$1\U$2/g;
  $str;
}

�P�[�X�����̃}�b�` /i �̏ꍇ�́A�Ⴆ�� '�G'�̑��o�C�g�� 'G' �ł���A'�g'�̑��o�C�g�� 'g' �ł��邱�Ƃ���A'�G' =~ /�g/i�̓}�b�`���܂��B�ł�����AShift-JIS�Ő��m�ȃ}�b�`����������΁A/i�C���q�͎g�����Ƃ��ł��܂���B
�����ɁA������Ɋ܂܂��A���t�@�x�b�g�i��o�C�g�����̑�Q�o�C�g�ɂ�����̂������j���������i�܂��͑啶���A�ǂ��炩�j�ɓ��ꂵ�ă}�b�`�����܂��Btolower�̒�`�͏�������������B
�T���v���R�[�h 
$char = '(?:[\x00-\x7F\xA1-\xDF]|[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])';

$lcstr = tolower($str);
$lckey = tolower(quotemeta $key);

if ($lcstr =~ /^$char*?$lckey/) {
    print "matched";
}
else {
    print "not matched";
}

�܂��͖��ߍ��ݏC���q (?ismx-ismx) ��p���Ă��D�����ʂ𓾂��܂��B
�T���v���R�[�h 
"��P��Perl�u�k�̂��ē�" =~ /^$char*?PERL�u�K/i       # �}�b�`����i����j
"��Q��Perl�u�k�̂��ē�" =~ /^$char*?((?i)PERL)�u�K/  # �}�b�`���Ȃ��i�ǂ��j
"��R��Perl�u�K�̂��ē�" =~ /^$char*?((?i)PERL)�u�K/  # �}�b�`����i�ǂ��j

�S�p�Q�o�C�g�A���t�@�x�b�g�̃P�[�X�����́A�I���ɂ������ł��܂��i���A����ς�ρj�B'�`'�̑�Q�o�C�g�� '`' �Ȃ̂��A������ƒ��ӂł��im`` �Ȃǂ̂Ƃ��v���I�G���[�ɂȂ�B�������o�b�N�N�H�[�g���g���Ӗ��͓��ɂȂ��j�B�����I�ɂ̓��e�������}�b�`���Z�q��u�����Z�q�ɒ��ږ��ߍ��ނ͔̂����������ł��B
�T���v���R�[�h 
/(?:�o|��)(?:�d|��)(?:�q|��)(?:�k|��)/;

���̑���ɂ���ȃT�u���[�`��������Ă݂Ă��悢��������܂���B
�T���v���R�[�h 
$CharRE = '(?:[\x00-\x7F\xA1-\xDF]|[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])';
 
$pat = make_regexp_ignorecase("�o�d�q�k�u�K");
print "��T��o�������u�K��" =~ /^$char*?$pat/ ? "OK": "NOT";

sub make_regexp_ignorecase {
  my $str = $_[0];
  $str =~ s/\G([A-Za-z]+|$CharRE)/
    my $c = ord $1;
    if($c == 0x82) {
      my $v = vec($1,1,8);
      0x81 <= $v && $v <= 0x9A ? sprintf('\\x82[\\x%2x\\x%2x]', $v, $v-33) :
      0x60 <= $v && $v <= 0x79 ? sprintf('\\x82[\\x%2x\\x%2x]', $v, $v+33) :
      quotemeta($1);
    } 
    elsif(0x41 <= $c && $c <= 0x5A || 0x61 <= $c && $c <= 0x7A) {"(?:(?i)$1)"}
    else {quotemeta($1)}
  /geo;
  $str;
}

����������ɑ΂��鐳�K�\������
���K�\���́APerl �ɂƂ��Č������Ȃ����݂Ƃ����܂��B���������K�\���̐����Ƃ��āA*, +, {min,max} �Ȃǂ̗ʎw��q���}�b�`���J��Ԃ���񐔂̏���Ƃ�����肪����܂��B(�ڍׂ� perlre �Q�Ƃ̂���)�B���̂��߁A$char*? �Ƃ������K�\���ɂ́A�댯��������܂��B
�Ⴆ�΁A���̂悤�ȃ}�b�`���O���l���Č��܂��傤�B$str�́A�u���v��10�����A���������ƂɁA�u�A�CABC�v���A�����ꂽ������ł��B���̂悤�ȕ�����i�������A�u�w���x��10�����A���v�Ƃ������Ƃ͕����炸�A�C�ӂ� Shift-JIS �e�L�X�g�ł��낤�Ƃ������Ƃɂ��܂��j����A���p�A���t�@�x�b�g���A���������������‚������Ƃ��܂��傤�B����ƁA���܂ł̍l�������炷��ƁA���̂悤�ɂ���΂悢�Ǝv���܂��B
�T���v���R�[�h 
my $char = '(?:[\x00-\x7F\xA1-\xDF]|[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])';
my $str = ('��' x 100000) . '�A�CABC';
$str =~ /^$char*?([A-Z]+)/o;
print $1;

�������A����́A�‹��ɂ���ẮA�傫�ȃG���[�������N�����܂��B�Ⴆ�΁AWindows 98��� Active Perl 522 ��p�����ꍇ�AError: Runtime exception �Ƃ��� Perl �̃G���[�ɂȂ�܂����B�܂��AWindows 98���VC++ 6.0�ŃR���p�C�����ꂽ Perl 5.6.1 ���ƁA�u���̃v���O�����͕s���ȏ������s�����̂ŋ����I������܂��B�`�v�ȂǂƂ������G���[�ɂȂ�܂����B
���̂悤�Ȗ����ł��邾���h�����߂ɂ́A���̂悤�ɂ��܂��B�‚܂�A������̐擪���璲�ׂĂ����ꍇ�A��o�C�g�����̕������E���ԈႦ��̂́A��o�C�g�����̑��o�C�g�̒���𕶎����E�ƌ�F�������������ł��BShift-JIS�ł́A��o�C�g�����̑��o�C�g�́A[\x81-\x9F\xE0-\xFC] �����ł��B���邢�́AEUC-JP �ɕϊ��”\�ȗ̈悾�����l������΁A[\x81-\x9F\xE0-\xEF] �����Ƃ������Ƃ��ł��܂��B����ȊO�̃o�C�g�̒���́A�Ⴆ�΁A0x41 �̒���́A'A' �̒��ォ�A'�A' �̒��ォ�͕�����܂��񂪁A�m���ɕ������E�ɂȂ�܂��B�]���āA[\x81-\x9F\xE0-\xFC]+ �i�܂��� [\x81-\x9F\xE0-\xEF]+ �j�̃o�C�g�i��o�C�g�����j���A������Ƃ��낾���ɒ��ӂ���΂悢���ƂɂȂ�܂��B
���̂��߁A�ȉ��̂悤�ɁA^$char*? �̑���� $Apad ���g���A\G$char*? �̑���� $Gpad ��p����΁A��o�C�g�������A��o�C�g�����̂������o�C�g�� [\x40-\x7E\x80\xA0-\xDF] �ŏI�����̂��A���Ȃ��Ƃ��K���ȊԊu�Łi����ɒB���Ȃ������Ɂj�o������΁A�G���[�ɂȂ炸�ɏ������邱�Ƃ��ł��܂��B�i�m���I�Ȗ��ł��̂ŁA���S�ł͂���܂���B�j
�T���v���R�[�h 
# ��񂾂��}�b�`
my $Apad  = '(?:(?:\A|[\x00-\x80\xA0-\xDF])(?:[\x81-\x9F\xE0-\xFC]{2})*?)';
my $str1 = ('��' x 100000) . '�A�CABC';
$str1 =~ /$Apad([A-Z]+)/o;
print "$1\n"; # "ABC" �ƕ\�������B

# �O���[�o���}�b�`
my $Gpad  = '(?:(?:\G|[\x00-\x80\xA0-\xDF])(?:[\x81-\x9F\xE0-\xFC]{2})*?)';

my $str2 = '��' x 100000 . '�A�CABC'. '��' x 100000 . 'XYZ';
my @array = $str2 =~ /$Gpad([A-Z]+)/go;
print "@array\n"; # "ABC XYZ" �ƕ\�������B

�O���̕ϊ�
�x���_��`�����⃆�[�U��`�������܂ޕ�����𑼂̊‹��ł����p�ł���悤�ɂ���ɂ́A�K�؂ȕϊ����K�v�ł��i���_�A�܂������������̗̂��p�͂قƂ�ǖ]�߂��A�����炭�͗ގ����������╶����ɕϊ����邱�ƂɂȂ�ł��傤�j�B�����Perl�ł͒u�����Z�q s/// ���g���Δ�r�I�e�ՂɎ����ł��܂��B
���炩���߁A�ǂ̊O�����ǂ��ϊ����邩���`����ϊ��e�[�u����p�ӂ��Ȃ��Ă͂Ȃ�܂���B�����Perl�ł̓n�b�V���ɂ��Ă����Ƃ��̌�̏������y�ɂȂ�܂��B�����ł́A'w932_gai.txt'�Œ�`����AWindows codepage-932�R�[�h�Ɋ�Â����@��ˑ������́i�����I�j�ϊ��e�[�u�����g�����Ƃɂ��܂��B
���̃R�[�h�ł́A�P�����ƒ}�b�`�����A���̕������ϊ��n�b�V���̃L�[�ɂ���ΑΉ�����l�̕�����ɒu�����A�����łȂ���΂��̂܂܎c���܂��B
�T���v���R�[�h 
require 'w932_gai.txt'; # %table�̒�`�i�s���S�I�j

$char = '(?:[\x00-\x7F\xA1-\xDF]|[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])';

$str =~ s/($char)/exists $table{$1} ? $table{$1} : $1/geo;

���l�ȏ����́A�‚��̂悤�ȏ������ł��ł��܂����A�O���Ƀ}�b�`���鐳�K�\�� $gaiji��p�ӂ���K�v������܂��B���ꂽ�}�b�`�����Ȃ����߂ɁA������̐��K�\���ɂ� \G ���K�v�ł��B�Ⴆ�΁A$str = '��@';�̌��Q�o�C�g�� "\x87\x40" �ł����A��������΃}�b�`�������S�z������܂���B�܂��A��~����}�b�` ($char*?)���g���� $char ���O���Ƀ}�b�`���Ȃ��悤�ύX����K�v�͂���܂���B
�T���v���R�[�h 
require 'w932_gai.txt'; # %table�̒�`�i�s���S�I�j

$char  = '(?:[\x00-\x7F\xA1-\xDF]|[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])';
$gaiji = '(?:[\x87][\x40-\x9c])';

$str =~ s/\G($char*?)($gaiji)/$1$table{$2}/g;

CP932�d����`�����̕ϊ�
Microsoft Windows ���{��łň�ʓI�Ɏg�p����Ă���R�[�h�y�[�W 932 (CP932) �ł́A��‚��̕������d�����Ē�`���ꂽ��ԂɂȂ��Ă��܂��B�����ŁA�������d����`����Ă���Ƃ́AUnicode�̓��������ʒu�ɑΉ��t�����Ă��邱�ƂƂ��܂��B
�Ⴆ�΁ACP932 -> Unicode -> CP932 �̏��ŕϊ������ƁA�d����`�����́A�ǂꂩ��‚ɑ������܂��B���̗D�揇�ʂ� JIS X 0208, NEC���ꕶ�� (13��)�AIBM�g������ (115�`119��)�ANEC�I��IBM�g������ (89�`92��) �̏��ł��B���Ƃ��āA'��' �̏ꍇ�ANEC���ꕶ���� "\x87\x9A" �� IBM�g�������� "\xFA\x5B" �́AJIS X 0208 �� "\x81\xE6" �ɂȂ�܂��B
�������ACP-932 �̃e�L�X�g���A�d����`�������ǂꂩ�ɑ����Ă��Ȃ����Ƃ�����܂��B�Ⴆ�� "\x87\x9A" �� "\xFA\x5B" ���܂܂�Ă���ƁA�e�L�X�g��ڂŌ���ƈႢ���Ȃ��̂ɁA"\x81\xE6" �Ō������Ă����‚����Ȃ����ƂɂȂ�܂��B
�d����`�����𑵂��郂�W���[���Ƃ��āAShiftJIS/CP932/Correct.pm ������܂��B����Ǝg������Perl�̃y�[�W�ɖ߂�Ό��‚���܂��B
�܂��AShiftJIS/String.pm �� strtr() �܂��� trclosure() ���g�����@������܂��B����Ǝg������Perl�̃y�[�W�ɖ߂�Ό��‚���܂��B
�T���v���R�[�h 

# (1) $necJIS -> $jisNEC (9��)
   $necJIS = "\x87\x90\x87\x91\x87\x92\x87\x95\x87\x96\x87\x97\x87\x9A\x87\x9B\x87\x9C";
      # NEC���ꕶ���̂����AJIS�����ɕϊ������ׂ��񊿎�
   $jisNEC = "\x81\xE0\x81\xDF\x81\xE7\x81\xE3\x81\xDB\x81\xDA\x81\xE6\x81\xBF\x81\xBE";
      # JIS�����̂����ANEC���ꕶ���ɏd����`����Ă���񊿎�

# (2) $necibmJIS -> $jisNECIBM (1��)
   $necibmJIS = "\xEE\xF9";
      # NEC�I��IBM�g�������̂����AJIS�����ɕϊ������ׂ��񊿎�
   $jisNECIBM = "\x81\xCA";
      # JIS�����̂����ANEC�I��IBM�g�������ɏd����`����Ă���񊿎�

# (3) $ibmJIS -> $jisIBM (2��)
   $ibmJIS = "\xFA\x54\xFA\x5B";
      # IBM�g�������̂����AJIS�����ɕϊ������ׂ��񊿎�
   $jisIBM = "\x81\xCA\x81\xE6";
      # JIS�����̂����AIBM�g�������ɏd����`����Ă���񊿎�

# (4) $ibmNEC -> $necIBM (13��)
   $ibmNEC = "\xFA\x4A-\xFA\x53\xFA\x58\xFA\x59\xFA\x5A";
      # IBM�g�������̂����ANEC���ꕶ���ɕϊ������ׂ��񊿎�
   $necIBM = "\x87\x54-\x87\x5D\x87\x8A\x87\x82\x87\x84";
      # NEC���ꕶ���̂����AIBM�g�������ɏd����`����Ă���񊿎�

# (5) $necibmIBM -> $ibmNECIBM (13��)
   $necibmIBM = "\xEE\xEF-\xEE\xF8\xEE\xFA\xEE\xFB\xEE\xFC";
      # NEC�I��IBM�g�������̂����AIBM�g�������ɕϊ������ׂ��񊿎�
   $ibmNECIBM = "\xFA\x40-\xFA\x49\xFA\x55\xFA\x56\xFA\x57";
      # IBM�g�������̂����ANEC�I��IBM�g�������ɏd����`����Ă���񊿎�

# (6) $necibmCJK -> $ibmCJK (360��)
   $necibmCJK = "\xED\x40-\xEE\xEC";
      # NEC�I��IBM�g���������̊���
   $ibmCJK    = "\xFA\x5C-\xFC\x4B";
      # IBM�g���������̊���

use ShiftJIS::String qw(trclosure);

# �ϊ��p�N���[�W���̐���
$correctCP932 = trclosure(
    $necJIS.$necibmJIS.$ibmJIS.$ibmNEC.$necibmIBM.$necibmCJK, # from
    $jisNEC.$jisNECIBM.$jisIBM.$necIBM.$ibmNECIBM.$ibmCJK     # to
);

$result = $correctCP932->($source); # $source ��ϊ����� $result �𓾂�

�������𐔂���
Shift-JIS������̕������𐔂���ɂ́A�}�b�`���Z�q�𗘗p����Ȃ�X�J���[�R���e�L�X�g�Ő����������኱���������ł��B������A�u�����Z�q�𗘗p�����ق�������������Ƃ킩��܂����B
�����Ƃ�XS�ŏ������ق��������Ƒ��������ł��B�܂��AXSUB�͖����ɗ��p���Ȃ��Ă��悢�ł��傤�B
�T���v���R�[�h 
use Benchmark;

$char = '(?:[\x00-\x7F\xA1-\xDF]|[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])';
$s = "������\0A�C�e�X�g -";

timethese (100000, {
  le => q{
    ($str = $s) =~ s/$char/0/go;
    $le = length $str;
  },
  sg => q{
    $sg = ($str = $s) =~ s/$char//go;
  },
  ab => q{
    $ab = 0;
    $ab++ while $s =~ /[^\x81-\x9F\xE0-\xFC]|../g;
  },
  ar => q{
    $ar = @{[ $s =~ /$char/go ]};
  },
  gr => q{
    $gr = grep defined, $s =~ /$char/go;
  },
  wh => q{
    $wh = 0;
    $wh++ while $s =~ /$char/go;
  },
  sj => q{
    $sj = sjslen($s);
  },
  xs => q{
    $xs = sjlength($s);
  },
});

sub sjslen {
  my($str,$len,$i,$c,$blen);
  $str = shift;
  $blen = length $str;
  while ($i < $blen) {
    $c = vec($str, $i, 8);
    if (0x81 <= $c && $c <= 0x9F || 0xE0 <= $c && $c <= 0xFC){ $i++ }
    $i++,$len++;
  }
  $len;
}

���� 
Benchmark: timing 100000 iterations of ab, ar, gr, le, sg, sj, wh, xs...
    ab:  4 wallclock secs ( 3.46 usr +  0.00 sys =  3.46 CPU) @ 28901.73/s
    ar:  6 wallclock secs ( 5.98 usr +  0.00 sys =  5.98 CPU) @ 16722.41/s
    gr:  6 wallclock secs ( 5.50 usr +  0.00 sys =  5.50 CPU) @ 18181.82/s
    le:  3 wallclock secs ( 2.09 usr +  0.00 sys =  2.09 CPU) @ 47846.89/s
    sg:  2 wallclock secs ( 1.92 usr +  0.00 sys =  1.92 CPU) @ 52083.33/s
    sj:  9 wallclock secs ( 8.57 usr +  0.00 sys =  8.57 CPU) @ 11668.61/s
    wh:  5 wallclock secs ( 4.78 usr +  0.00 sys =  4.78 CPU) @ 20920.50/s
    xs:  1 wallclock secs ( 0.38 usr +  0.00 sys =  0.38 CPU) @ 263157.89/s
        (warning: too few iterations for a reliable count)

XSUB 
int
sjlength(arg)
    SV* arg
  PROTOTYPE: $
  PREINIT:
    unsigned char *str, *p, *e;
    STRLEN byte, len = 0;
  CODE:
    p = str = (unsigned char *)SvPV(arg, byte);
    e = str + byte;
    while (p < e) {
        if (0x81 <= *p && *p <= 0x9F || 0xE0 <= *p && *p <= 0xFC)
            ++p;
        ++p, ++len;
    }
    RETVAL = len;
  OUTPUT:
    RETVAL

�����P�ʂɕ�����
Shift-JIS������𕶎��P�ʂɕ������܂��傤�B���̏ꍇ�́AXS�𗘗p���Ă����܂葬���Ȃ�܂���ł����B�Ԃ�l�̃��X�g��p�ӂ���̂Ɏ��Ԃ������̂��A��͂�Perl�̐��K�\���̏����͂��Ȃ葬�����̂��Ƃ������Ƃł��傤�B
�T���v���R�[�h 
use Benchmark;

$char = '(?:[\x00-\x7F\xA1-\xDF]|[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])';
$s = "���{����ݺ�\0ABC" x 100;

timethese (1000, {
   re => q{
      @re = $s =~ /$char/go;
   },
   xs => q{
      @xs = sjsplit($s);
   },
});

���� 
Benchmark: timing 1000 iterations of re, xs...
    re:  7 wallclock secs ( 6.65 usr +  0.00 sys =  6.65 CPU) @ 150.38/s
    xs:  6 wallclock secs ( 5.33 usr +  0.00 sys =  5.33 CPU) @ 187.62/s

XSUB 
void
sjsplit(arg)
    SV* arg
  PROTOTYPE: $
  PREINIT:
    unsigned char *str, *p, *e;
    STRLEN ch, byte, len = 0;
  PPCODE:
    str = (unsigned char *)SvPV(arg,byte);
    e = str + byte;
    for (p = str; p < e; p++) {
        if (0x81 <= *p && *p <= 0x9F || 0xE0 <= *p && *p <= 0xFC) ++p;
        ++len;
    }
    EXTEND(SP,len);
    for (p = str; p < e; p += ch) {
        ch = (0x81 <= *p && *p <= 0x9F || 0xE0 < *p && *p <= 0xFC) ? 2 : 1;
        PUSHs(sv_2mortal(newSVpv(p,ch)));
    }

�F�X�ȕ���
�����ŕ����ł݂��悤�ɁA������𕪊�����ɂ́Am//g���֗��ł��B
�T���v���R�[�h 
$onebyte = '[\x00-\x7F\xA1-\xDF]';
$twobyte = '(?:[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])'; 
$char    = '(?:[\x00-\x7F\xA1-\xDF]|[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])';

#�P�o�C�g�����̉�ƂQ�o�C�g�����̉�ɕ�����B
   while ($str =~ /\G($onebyte*)($twobyte*)/g) {
      push @one, $1 if $1 ne '';
      push @two, $2 if $2 ne '';
   }

#��_���Ō�̕����ƂȂ�悤�ɕ�������B
# '�B' �ł͂������A�����ɂ���Ă͒��ӂ��K�v�B
   @sentences = $str =~ /\G$char*?(?:�B|�D|$)/g; 

����̒����Ő؂肻�낦��
��������������̒����i�o�C�g���j�Ő؂肻�낦��Ȃ�A���̂悤�ɂ��Ăł��܂��B
�T���v���R�[�h 
$char = '(?:[\x00-\x7F\xA1-\xDF]|[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])';

$str = '�킴�킴EUC-JP�ɕϊ����Ȃ��ŁAShift-JIS�̂܂܏���'.
       '�ł����炢���񂾂��ǁA�Ȃ��Ȃ��ʓ|���˂��B';

print join "\n", bytebreak($str,15);

sub bytebreak{
   my($byte,$bmax,$ch,@lines);
   my $str = shift;
   $byte = $bmax = shift;
   foreach $ch ($str =~ /$char/go) {
      $byte += length $ch;  # ���̕������p������������
      if ($byte <= $bmax) {
         $lines[-1] .= $ch; # �������Ȃ���Όp������
      } else {
         $byte = length $ch;
         push @lines, $ch;  # �����Ȃ���Ύ��̍s��
      }
   }
   return @lines;
  # ����������Ȃ��ꍇ�ɁA�E���X�y�[�X�Ŗ��߂�����΁B
  # return map {$_ .= ' ' x ($bmax - length)} @lines;
}

�֑������́A�Ⴆ�Ύ��̂悤�ɂ��čs���܂��B�P���ȍl�����ł́A�֑������́A(i) �s���֑������̒��O�ʼn��s���Ȃ��G(ii) �s���֑������̒���ʼn��s���Ȃ��G�Ƃ������ƂɂȂ�܂��B�܂��A"(a)"�̂悤�ɁA�s���֑������ƍs���֑������̊ԂɂP���������Ȃ��A�����������́A���̕����̑S�̂������s�ɂȂ�_�ɂ��z�����܂��B
���̗�ł͕�����̒������o�C�g�� length �ŋK�肵�Ă��܂����A�������ƃo�C�g���͕K��������Ⴕ�܂���̂ŁA�ꍇ�ɂ���Ắi�M���V�A�����͔��p���ɂ������Ƃ��A�܂��̓v���|�[�V���i���̏ꍇ�Ƃ��AUTF-8�̏ꍇ�Ƃ��j��������Ԃ� width �̂悤�Ȋ֐����`����K�v������ł��傤�B
�܂��A���̗�̂����ł́A�֑��ɂ�閳���s���������ň�s��蒷���Ȃ�ꍇ�́A�݂͂�����h���܂���B���ꂪ����Ȃ�A�֑��̗�O�Ƃ��čs�𕪂���i�Ⴆ��$next�̒�����$bmax�𒴂��Ȃ��悤�ɂ���j���u���K�v�ł��傤�B
�T���v���R�[�h 
$CharRE = '(?:[\x00-\x7F\xA1-\xDF]|[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])';

# �s���֑������i�ꕔ���j
$NotAtBegin = q/)]}�f�h�v�x�j�n�p!,.:;?�A�B�X�J�K�I�C�D�F�G�H/;
# �s���֑������i�ꕔ���j
$NotAtEnd   = q/([{�e�g�u�w�i�m�o/;

# �n�b�V�������
@NotAtBegin{$NotAtBegin =~ m/$CharRE/g} = ();
@NotAtEnd{  $NotAtEnd   =~ m/$CharRE/g} = ();

$Str = '�킴�킴EUC-JP�ɕϊ����Ȃ��ŁAShift-JIS�̂܂܏���'.
       '�ł����炢���񂾂��ǁA�Ȃ��Ȃ��ʓ|���˂��B';

print join "\n", linebreak($Str,16);

sub linebreak{
   my($byte,$i,@chars,$next,@lines);
   my($str, $bmax, $pad) = @_;

   # $byte�͎��̕������p���������Ƃ��̒���
   $byte = $bmax; # �������s�ł��邽�߂̏����l�B

   # �����P�ʂɂ΂炷
   @chars = $str =~ /$CharRE/go; 

   for ($i=0; $i<@chars; $i++) {
      $next .= $chars[$i];         # ���̕���
      $byte += length $chars[$i];  # ���̕������p������������

      # ���̕������s���֑��̂Ƃ�
      next if $i+1 < @chars && exists $NotAtEnd{ $chars[$i] };
      # ���̕����̎����s���֑��̂Ƃ�
      next if $i+1 < @chars && exists $NotAtBegin{ $chars[$i+1] };

      # �s�̐U�蕪��
     # �������Ȃ���Όp������
      if ($byte <= $bmax) {
         $lines[-1] .= $next;
      }
     # �����Ȃ���Ύ��̍s��
      else {
         push @lines, $next;
         $byte = length $next;# �V�����s�̒���
      }
      $next = '';
   }
   return defined $pad && 1 == length $pad # �l�ߕ�
    ? map {$_ .= $pad x ($bmax - length)} @lines
    : @lines;
}

�Ԃ牺����֑��̏ꍇ�i$bmin ���� $bmax�͈̔͂������j�B 
      $bmin = $bmax - 2; # �Ⴆ�΁B

      # �s�̐U�蕪��
     # �������Ȃ���Όp������
      if ($byte <= $bmax && @lines && length $lines[-1] < $bmin){
         $lines[-1] .= $next;
      }
     # �����Ȃ���Ύ��̍s��
      else {
         push @lines, $next;
         $byte = length $next;# �V�����s�̒���
      }

���{�ꕶ�������ёւ���
������������܏\�����Ƀ\�[�g���郂�W���[���Ƃ��āAShiftJIS/Collate.pm ������܂��B����Ǝg������Perl�̃y�[�W�ɖ߂�Ό��‚���܂��B
�u�ǂ݁E�\�L�ƍ��v�͎��̂悤�ɂ��čs���܂��BsortYomi���\�b�h�̎󂯎�郊�X�g�̊e�v�f�́A[ �\�L��, �ǂݗ� ]�Ƃ����z�񃊃t�@�����X�łȂ���΂Ȃ�܂���B
�T���v���R�[�h 
use ShiftJIS::Collate;

my @data = (
  [qw/ ���R ����� /],
  [qw/ ���c �Ȃ��� /],
  [qw/ �c�� ���Ȃ� /],
  [qw/ ��� ������ /],
  [qw/ ���� ������ /],
  [qw/ ���� ������ /],
  [qw/ ���R ����� /],
  [qw/ ���� ������ /],
  [qw/ ���� ������ /],
  [qw/ �R�c ��܂� /],
  [qw/ �i�c �Ȃ��� /],
);

@sort = ShiftJIS::Collate->new()->sortYomi(@data);

�u�ȈՑ�\�ǂݏƍ��v�͎��̂悤�ɂ��čs���܂��BsortDaihyo���\�b�h�̎󂯎�郊�X�g�̊e�v�f�́A[ �\�L��, �ǂݗ� ]�Ƃ����z�񃊃t�@�����X�łȂ���΂Ȃ�܂���B
�T���v���R�[�h 

#!perl
use ShiftJIS::Collate;

my @data = (
  [qw/ �Ɍv�Z   ��ނ��������� /],
  [qw/ JIS�ԍ�  �����΂񂲂�   /],
  [qw/ ���B     ������         /],
  [qw/ ����     ����ǂ�       /],
  [qw/ �͐�     ������         /],
  [qw/ �͓�     ���킿         /],
  [qw/ �p�c     ������         /],
  [qw/ �p�c     ���ǂ�         /],
  [qw/ �@��     �����炬       /],
  [qw/ �͓�     ������         /],
  [qw/ �K�R     �������       /],
  [qw/ �K�R     �������       /],
  [qw/ ����     ���Ƃ�         /],
  [qw/ ���a�c   ���킾         /],
  [qw/ ��     ���킵��       /],
  [qw/ ��c     ���킾         /],
  [qw/ �V�c     ���킾         /],
  [qw/ �p�c     �‚̂�         /],
  [qw/ �ƈ�     �‚���         /],
  [qw/ �y��     �‚���         /],
  [qw/ �y��     �‚���         /],
  [qw/ �ˈ�     �Ƃ�           /],
  [qw/ �˓c     �Ƃ�           /],
  [qw/ �y��     �ǂ�           /],
  [qw/ �y��     �ǂ�           /],
  [qw/ �y��     �Ƃ�           /],
  [qw/ ���c     �₷��         /],
);

@sort = ShiftJIS::Collate->new()->sortDaihyo(@data);


Shift-JIS�̊������܂ރt�@�C����/�p�X��
�{���ڂ́A���̍��ڂɑ����āA�����s�[���̂܂܋L�q���Ă��܂��̂ŁA���������Q�l�ɂ��悤�Ǝv�����ꍇ�A�\���ɒ��ӂ̏�A�[���ł���܂ł������̍�Ɗ‹��Ńe�X�g���Ă��������B
Windows (95/98/NT/2000�Ȃ�) �ŁA�t�@�C������p�X���������i�����ł͓�o�C�g�����̈Ӗ��Ŏg���Ă��܂��̂ŁA��������L���Ȃǂ��܂݂܂��B�j���܂ޏꍇ�APerl�ň����ۂɖ�肪������”\��������܂��B
�����o�C�g�� "\x5C" �̊��������ƒt�@�C����/�p�X��
�f�B���N�g������֐��imkdir, rmdir, opendir, -d �Ȃǁj�A�t�@�C������֐��iopen, unlink, -f �Ȃǁj�ŁA�A�N�Z�X�ł��Ȃ����Ƃ�����܂��B
�t�@�C���̏ꍇ�́A�����ɔ��p�X�y�[�X��Y����ƃA�N�Z�X�ł���ꍇ������܂��i�Ⴆ�΁A-f '�\ ' �܂��� -f "\x95\x5C\x20" �Ȃǁj�B
�f�B���N�g���̏ꍇ�́A������ / �� \ ��Y����ƃA�N�Z�X�ł���ꍇ������܂��i�Ⴆ�΁A-d '�\/' �܂��� -d "\x95\x5C/" �Ȃǁj�B�����ɓY���镶���𔼊p�X�y�[�X�Ƃ��Ă��A���܂��A�N�Z�X�ł���ꍇ������܂��B�Y���镶���̌��Ƃ��āA�O��ނ̕����i�X���b�V���A�~�L���A�󔒁j�������܂������A�ǂ̕������悢���́A�֐��ɂ���ĈقȂ�ꍇ������悤�ł��B�g�p����O�ɏ\���Ƀe�X�g���Ă��������B
�Ȃ��A�f�B���N�g�����̖����� / �� \ ��Y����ꍇ�A���Ƃ��Ɩ����� / �� \ ���t���Ă���ꍇ�ɂ́A��d�ɕt����Ƃ��܂��s���Ȃ������ꂪ����܂��̂ŁA������A���̑O�Ɍ��������ق����悢�ł��傤�B
�ǂ����Ă��������s���ŐM���ł��Ȃ��ꍇ�́A`` �܂��� qx// �� system()�֐��Ȃǂ�ʂ���Windows�̃R�}���h���ĂԂ̂��ǂ��Ǝv���܂��B
���܂�
 Shift-JIS �ŏ����ꂽ POD �� Perl 5.8.1, 5.8.2 �� Pod::Html �� HTML �ɕϊ������ꍇ�A�A���J�[�̖��O�́A �p�����Ɖ������� [0xA6..0xDF] �������A ���̊e�o�C�g�͉����i'_'�j�ɕϊ������悤�ł��B ��̓I�ɂ́Ause locale; ���ŁAlc �� s/\W/_/g �����s�������� (cf. Pod::Html::anchorify) �ɂȂ�܂��B 
[2003-11-18]
Perl�̃y�[�W