先ほどと同じく環境変数の一つです。



実は、環境変数の一覧を作ったのですけど・・・。自分で実行するならともかく、公開するとなると、とても危険そうな情報も入っていたのでやめました。簡単に作れるので、自分で試してみましょう。



で、なぜ、「SCRIPT_NAME」なのかというと、ここのスクリプトは「htm」と「cgi」という拡張子とディレクトリが違うだけなので、「解説を見る」とかいうリンクを作りたかったから。この環境変数は、実行しているファイルの名前が最後に出るので、それを使ってリンクを作ろうかと思って・・・。



でも、perlを使うからには「正規表現」というやつを使ってみたい。と、ふと思ったので、ここでは環境変数の紹介だけ。



・・・といっても、ここで使う以外には汎用性は無さそうだけど(笑)



ソースコード



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/perl

@styles=("../../ipp.css","../test.css");

{
&printHeader("テスト5");

print "<div class=test>n";
if($ENV{'SCRIPT_NAME'}){
print "この実行ファイルのパス名(?)は「$ENV{'SCRIPT_NAME'}」です。n";
}else{
print "・・・どうやら失敗のようです・・・。";
}
print "</div>";

&printFooter;

exit;
}

sub printHeader{
print "Content-type: text/htmlnn";
print "<html lang=ja><head><title>$_[0]</title>n";
foreach $st (@styles){
print "<link rel="stylesheet" type="text/css" href="$st">n";
}
print "</head><body>n";
print "<div class=head>n";
print "<h1>$_[0]</h1><hr>n";
print "<a href="../../../index.htm">Home</a> / <a href="../../">Perl</a> / <a href="../">TestCGI Index</a>n";
print "<hr></div>n";
}

sub printFooter{
print "<div class=foot>n";
print "<hr>n";
print "<a href="../../../index.htm">Home</a> / <a href="../../">Perl</a> / <a href="../">TestCGI Index</a>n";
print "<hr>n";
open(IN,"../../sig.txt");
while ($sig=<IN>){print $sig;}
close(IN);
print "</div>n";
print "</body></html>n";
}