[Edit][Create New]
[ IndexPage / ネットとプログラミング / CGI / 便利なスクリプト片(未整理) / Tool.pm ]

Tool.pm

package Tool;

# Last Modified: Sat Mar 30 10:49:48 JST 2002

use strict;
use Jcode;

sub error{
	my($package, $filename, $line, $sub);
	  ($package, $filename, $line)       = caller(0);
	  (undef   , undef    , undef, $sub) = caller(1);
	  my $hist1 = join(" : ", caller(1));
	  my $hist2 = join(" : ", caller(2));
	  my $hist3 = join(" : ", caller(3));
	  my $hist4 = join(" : ", caller(4));

	# ファイル名を生成
	my $dir = $ENV{SCRIPT_NAME};
	   $dir =~ s#[^/]*$##;
	   $dir =~ s#/cgi-bin/p2##;
	   $dir = "/export/home/lnet/cgi-bin_p2$dir";
	$filename = "$dir$filename" unless $filename =~ m#^/#;

	print Jcode::convert(<<EOF, 'sjis');
Content-Type: text/html

	<HTML>
	<HEAD>
	<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
	<TITLE>エラー</TITLE></HEAD>
	<BODY BGCOLOR="#FFFFFF">
	<H1>エラー</H1>
	<HR>
	<P>
	ブラウザの「戻る」ボタンを押してやり直して下さい。<BR>
	(解決しない場合はシステム管理者に相談してください)。
	</P>
	<FORM>
	<DL>
	<LI>理由: @_
	<LI>Location: 
	  <DL>
	  <LI>at file ``<TT><B>$filename</B></TT>''
	  <LI>line <TT><B>$line </B></TT>
	  <LI>in subroutine ``<TT><B>$sub</B></TT>'' 
	  <LI>where ``<TT><B>$package</B></TT>'' package.  
	  <LI>To Edit:<INPUT TYPE=TEXT SIZE=80 VALUE="vi +$line $filename">
	  </DL>
	<LI>\$!: $! 
	<LI>\$\@: $@ 
	</DL>
	</FORM>
	</BODY>
	</HTML>
EOF
	print <<EOF;
	<LI>$hist1
	<LI>$hist2
	<LI>$hist3
	<LI>$hist4
EOF
	exit;
}
1;

__END__

=head1 NAME

Tool - 汎用ツール

=head1 SYNOPSIS

&Tool::error("error message", "error message2"..);

=head1 DESCRIPTION

詳細なエラーを返します。

=cut