自分のURLやファイル名を取得
CGIモジュール を使って、現在実行している Perl/CGIプログラム のURLやファイル名を調べて表示させてみましょう。
前回は、 CGIモジュールを使わずにPerl/CGIプログラムのファイル名を取得 しましたよね。
今回はその続きみたいなもので、CGIモジュールの力を借りて、現在実行中の Perl/CGIプログラム のURLやファイル名を取得してみます。
CGIモジュールの取得
多くのレンタルサーバーではすでにCGIモジュールがインストールされているはずです。
なのでわざわざ CPAN まで行ってCGIモジュール一式をダウンロードする必要はありません。
しかし、あなたが今使っているレンタルサーバーにCGIモジュールがインストールされているかわからないという場合には、 Perlモジュール一覧を表示 させて確認してみた方がよいでしょう。
そしてもしCGIモジュールがレンタルサーバーにインストールされていなかったら、CPANでCGIモジュールを検索してダウンロードする必要があります。
CPAN(The CPAN Search Site)
CGIモジュールのダウンロードページ
http://search.cpan.org/~markstos/CGI.pm-3.52/lib/CGI.pm
CGIモジュールをダウンロードしたら解凍します。
libフォルダの中身がCGIモジュール一式になります。
後述のPerl/CGIプログラムをこのlibフォルダ内に入れて、libフォルダごとインターネットサーバーにアップロードします。
そしてPerl/CGIプログラムを実行すると、レンタルサーバーにCGIモジュールがインストールされていない環境でもCGIモジュールを利用することができます。
Perl/CGIプログラム作成
CGIモジュールを使って、このPerl/CGIプログラムのURLやファイル名を表示させてみましょう。
#!/usr/bin/perl
use strict;
use CGI;
my $CGI = new CGI;
print "Content-type: text/html\n\n";
print '$CGI->url() : ', $CGI->url(), "<br>\n";
print '$CGI->url(-relative, 1) : ', $CGI->url(-relative, 1), "<br>\n";
print '$CGI->url(-absolute, 1) : ', $CGI->url(-absolute, 1), "<br>\n";
print '$CGI->url(-base , 1) : ', $CGI->url(-base , 1), "<br>\n";
print '$CGI->url(-full, 1) : ', $CGI->url(-full, 1), "<br>\n";
print '$CGI->url(-path_info, 1) : ', $CGI->url(-path_info, 1), "<br>\n";
print '$CGI->url(-path_info, 1,-query, 1) : ', $CGI->url(-path_info, 1,-query, 1), "<br>\n";
exit;
Perl/CGIプログラムサンプル はこちらに設置してあります。
このPerl/CGIプログラムを実行すると、だいたいこんな感じに表示されます。
$CGI->url() : http://kimurashuuichi.com/perl/memo/programming_thisfilename_module/index.cgi
$CGI->url(-relative, 1) : index.cgi
$CGI->url(-absolute, 1) : /perl/memo/programming_thisfilename_module/index.cgi
$CGI->url(-base , 1) : http://kimurashuuichi.com
$CGI->url(-full, 1) : http://kimurashuuichi.com/perl/memo/programming_thisfilename_module/index.cgi
$CGI->url(-path_info, 1) : http://kimurashuuichi.com/perl/memo/programming_thisfilename_module/index.cgi
$CGI->url(-path_info, 1,-query, 1) : http://kimurashuuichi.com/perl/memo/programming_thisfilename_module/index.cgi
CGIモジュールには、このように自分自身のURLやファイル名を取得するためのurlメソッドがあります。
このようにいろいろな呼び出し方があります。
主に利用されているのは「$CGI->url()」でしょうか…。
「$CGI->url()」なら、現在実行している(現在アクセスしている)Perl/CGIプログラムのURLを簡単に取得できます。