自分のURLやファイル名を取得

CGIモジュール を使って、現在実行している Perl/CGIプログラム のURLやファイル名を調べて表示させてみましょう。

前回は、 CGIモジュールを使わずにPerl/CGIプログラムのファイル名を取得 しましたよね。

今回はその続きみたいなもので、CGIモジュールの力を借りて、現在実行中の Perl/CGIプログラム のURLやファイル名を取得してみます。

  1. CGIモジュールの取得
  2. Perl/CGIプログラム作成

CGIモジュールの取得

多くのレンタルサーバーではすでにCGIモジュールがインストールされているはずです。

なのでわざわざ CPAN まで行ってCGIモジュール一式をダウンロードする必要はありません。

しかし、あなたが今使っているレンタルサーバーにCGIモジュールがインストールされているかわからないという場合には、 Perlモジュール一覧を表示 させて確認してみた方がよいでしょう。

そしてもしCGIモジュールがレンタルサーバーにインストールされていなかったら、CPANでCGIモジュールを検索してダウンロードする必要があります。

CPAN(The CPAN Search Site)

http://search.cpan.org/

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を簡単に取得できます。