KCatch.pm �� Perl CGI �Ŕ������� Internal Server Error ��⑫���āA
�G���[���e�� HTML �Ƃ��ău���E�U��ʂɕ\�����Ă���郂�W���[���ł��B
�G���[�̔��������s�ԍ��Ȃǂ��\�������̂ŁA�T�[�o��ł̊J���ɍœK�ł��B
CodeRepos �Ƀ\�[�X���ړ����܂����I�i2007/12/23�j
KCatch.pm�ł� CGI �X�N���v�g���s���̃G���[�����łȂ�
HTTP�w�b�_���o�͂���O�ɔ��������G���[�ɂ��Ă��ߑ�����܂��B
���s�O�̃R���p�C�����̃G���[�iPerl���@�G���[�j��A
use/require ���Ă��郂�W���[��/���C�u���������݂��Ȃ��ꍇ�Ȃǂ�
Internal Server Error��������ł��܂��B
CGI�J����Ǝ��ɂ́A���̃����b�g�͑傫���ł��B
�����ł́A�����Ƃ��ȒP�� KCatch.pm �̓������@�������܂��B
�܂��A�_�E�����[�h�����A�[�J�C�u���� KCatch.pm �t�@�C�������o���A
�E�F�u�T�[�o�� CGI �t�@�C���Ɠ����f�B���N�g���i�܂��� @INC �ȃf�B���N�g���j��
�A�b�v���[�h�����������B
KCatch.pm �̃p�[�~�V������ rw-r--r-- (644) �Ƃ��܂��B
CGI �v���O�����̐擪 (#!/usr/bin/perl �̌ォ�Ause strict; �̌�) �ɁA
use KCatch;
�̂P�s��lj����邾���ł��B�ȏ�ŁA�����ł��B
�O�� Perl ���W���[���̌Ăяo���G���[��Adie�Ewarn �̃��b�Z�[�W�ȂǁA
CGI ���s�������ɔ������鑽���̃G���[��ߑ��ł��܂��B
CGI �v���O�����{�̓��� Perl �̍\���G���[�Ȃǂ́A
use KCatch �s�����s�����O�ɃG���[�I�����Ă��܂����߁A
KCatch �ł͕ߑ��ł��܂���B
�����ŁA�ȉ��̎菇���g���A�قڑS�Ă� CGI �G���[�m���ɕߑ����邱�Ƃ��ł��܂��B
���ɁA�ȉ��̂悤�� CGI �v���O���� hello.cgi �� KCatch.pm ������ꍇ�́A
#!/usr/bin/perl use strict; print "Content-Type: text/html\n\n"; print "Hello, World!!\n"; print scalar localtime(), "\n";
���� hello.cgi �̖{���͏����������ɁA
�t�@�C������hello-main.pl�ƕύX���Ă��������B
hello-main.pl�̖����Ɉȉ���1�s��lj����܂��B(�I�}�W�i�C)
;1;
���ɁAhello.cgi�Ƃ����t�@�C������
#!/usr/bin/perl use strict; use KCatch; require "hello-main.pl";
�����̓��e�ɂ��܂��B
hello.cgi �̃p�[�~�V�����͒ʏ�ʂ� rwxr-xr-x (755) �Ƃ��܂��B
���ꂾ���̎菇�ŁAhello-main.pl���Ŕ��������G���[�͕ߑ�����A
�u���E�U��ʂɃG���[���e���ԕ����ŕ\������܂��B
KCatch.pm �́Ause �s�ɂĂ������̃I�v�V�������w��ł��܂��B
��\�I�ȃI�v�V�������Љ�܂��B
use KCatch qw( source );
warn �� die �̔��������s�̃\�[�X�R�[�h���\�����܂��B
�J�����ɕ֗��ł����A��ʌ��J��ɉ��炩�̃G���[�����������ꍇ�A
��ʃ��[�U�ɂ��R�[�h�������Ă��܂����߁A
�Z�L�����e�B��̖��ɐ�����\��������܂��B
�f�o�b�O������E��ʌ��J�O�ɂ͂��̃I�v�V�����͊O���܂��傤�B
use KCatch qw( stderr );
�G���[���e���u���E�U��ʂ����łȂ��A
�W���G���[�o�� STDERR �ɂ��f���o���܂��B
Apache �̃G���[���O�ɏ������܂�邽�߁A
�G���[���e�̊m�F�ɕ֗��ł��B
jcode=sjis �܂��� Jcode=sjis �I�v�V�����ł́A
�G���[�����̓��{�ꕶ���R�[�h�� Shift_JIS �Ɏw��ł��܂��B
�wCGI �̓��������R�[�h�� EUC-JP ������ǂ��A
PC �p�ɏo�̓R�[�h�� Shift_JIS �ɂ��Ă�����x�ȂǂɗL�p�ł��B
use Jcode; use KCatch qw( Jcode=sjis );
�̂悤�� Jcode=sjis �I�v�V�����𗘗p����ꍇ�́A
�\�� Jcode.pm ���K�v�ł��B
(�����R�[�h�Ƃ���UTF8�����p�\�ł�)
require "jcode.pl"; use KCatch qw( jcode=sjis );
�̂悤�� jcode=sjis �I�v�V�����𗘗p����ꍇ�́A
�\�� jcode.pl ���K�v�ł��B
(�����R�[�h�Ƃ���UTF8�͗��p�ł��܂���)
���̑��ɁAexecdata �I�v�V�����i�ʖ��F�~����I�v�V�����j������܂����A
���� execdata �I�v�V�����𗘗p��������A
���̃y�[�W�ŏЉ�Ă��� hello.cgi�`hello-main.pl �̂悤��
�\�[�X�t�@�C��������菇�̕������m���ɃG���[��⑫�ł��܂��B
���̂��߁A���݂� execdata �I�v�V�����̗��p�����A
�\�[�X�����`���������߂��܂��B
Perl CGI �J�����̂��肪���ȃG���[���b�Z�[�W���Љ�܂��B
Global symbol "$xxxx" requires explicit package name
use strict �����ł́A�S�Ă̕ϐ��� my �� local ��
�g�p����O�ɐ錾����K�v������܂��B
���̃G���[���o��ꍇ�A�錾���Y��Ă���ϐ������邩�A
�܂��́A�X�N���v�g���̕ϐ����̌뎚���l�����܂��B
Missing right bracket
���̃G���[���o��ꍇ�A�J���J�b�R�g{�h�����Ă��܂���B
���[�v��������� if ���̓���q�\���ŁA
���Y�ꂽ�J�b�R�g}�h������悤�ł��B
unmatched () in regexp
���K�\�����́g(�h�����Ă��܂���B
�g(�h�̐������g)�h����Ă��邩�m�F������A
s///; m//; �̗v�f���������������m�F���Ă��������B
�g(�h���̂̕����������������ꍇ�́A�g\(�h��g\Q(\E�h�ƃG�X�P�[�v���܂��B
Can't coerce array into hash
���X�g�z��(ARRAY)�ւ̃��t�@�����X��
�n�b�V��(HASH)�Ƃ��ė��p���悤�Ƃ����ꍇ�ɔ������܂��B
$list->[0] �Ƃ��ׂ��ӏ��� $list->{0} �̂悤�ɋL�q���Ă����Ȃ��ł��傤���H
Can't call method "xxxx" without a package or object reference Can't call method "xxxx" on an undefined value
���̃G���[���o��ꍇ�A
����`�l������N���X�Ɗ֘A�t�����Ă��Ȃ�(��bless)�ϐ��ɑ���
���\�b�h�Ăяo�������s�����ꍇ�ɔ������܂��B
��̓I�ɂ́Anew() �R���X�g���N�^�̏����ŃG���[�����������̂ɁA
�G���[����������ɑ����ă��\�b�h���Ăяo�����ꍇ�Ȃǂł��B
xxxx.pl did not return a true value
use/require ����鑤��Perl���W���[��/���C�u�����ł́A �Ō�̍s�͕K���^��Ԃ��K�v������܂��B ���̃G���[���b�Z�[�W���\�����ꂽ�ꍇ�́A �Y���t�@�C���̍Ō�̍s�ɃI�}�W�i�C��1�s
;1;
��lj������������B
KCatch.pm���Љ�Ă���Ă���y�[�W�F
�Ȃ��AKCatch.pm �Ǝ����@�\������ Perl ���W���[���Ƃ��āA
CGI::Carp ������܂��B
������� CPAN ����C���X�g�[���ł��܂��B
�u���E�U�ւ̃G���[���e�\����
CGI::Carp �� fatalsToBrowser �I�v�V�������߂������ɂȂ�܂����A
KCatch.pm �̕����ߑ��`�\�����m���ȋC�����܂��B
�t�ɁA�u���E�U�ւ̃G���[�\���ȊO�̋@�\�ɂ��Ă�
CGI::Carp �̕������@�\�Ȗʂ�����܂��B
�g���b�N�o�b�NURL�Fhttp://www.kawa.net/service/tb/ajaxtb.cgi/works/perl/catch/news.html
Kawa.netxp © Copyright 2000-2004 Yusuke Kawasaki