PERL環境チェック
PERLのバージョン
$ver = `perl -e "print $]"`;
$ver2 = $^V;
print "$ver($ver2)"; # 5.030003(v5.30.3)
PERLのパス
$all_p_path = $ENV{PATH}; # /usr/local/bin:/usr/bin:/bin
$perl_path = $^X; #/usr/local/bin/perl
利用可能な全てのライブラリのパス
foreach my $path (@INC) {
print "$path<br>\n";
}
PERLモジュールのバージョンチェック
PERLモジュールの有無とバージョンチェックするスクリプト。見た目は適当。
my @modules = qw(
CGI
Jcode
FindBin
Image::Magick
HTML::Template
File::Copy
File::Basename
File::Path
Encode
utf8
LWP
LWP::Simple
LWP::UserAgent
HTTP::Request::Common
Mail::POP3Client
Net::FTP
Net::SMTP
Net::HTTP
DBI
XML::Simple
XMLRPC::Lite
HTML::LinkExtor
Date::Calc
XML::RSS::Parser
Template::Toolkit
Text::Diff
CGI::Session
CGI::Cookie
JSON::XS
JSON::PP
JSON
JSON::MaybeXS
);
print "<table width='500' border='1' cellpadding='5'>\n";
print "<tr><td width='350'>モジュール名</td><td width='150'>バージョン</td></tr>\n";
foreach my $module (@modules) {
my $version = eval "require $module; \$${module}::VERSION";
if ($@) {
print "<tr><td>$module</td><td>利用できません</td></tr>\n";
} else {
print "<tr><td>$module</td><td>(Ver. $version)</td></tr>\n";
}
}
print "</table>";
Sendmailのパス
my @possible_paths = ('/usr/sbin/sendmail', '/usr/lib/sendmail', '/usr/local/sbin/sendmail', '/usr/local/lib/sendmail');
my $sendmail_path;
foreach my $path (@possible_paths) {
if (-x $path) {
$sendmail_path = $path;
last;
}
}
if ($sendmail_path) {
print "Sendmailのパス: $sendmail_path\n";
} else {
print "Sendmailは利用できません。\n";
}
スクリプトのパス
use FindBin;
$script_dir = $FindBin::Bin;
環境変数
print "<table border=1>\n";
for $key ( sort keys %ENV ) {
print "<tr>\n";
print "<td><code>${key}</code></td><td><code>$ENV{$key}</code></td>\n";
print "</tr>\n";
}
print "</table>\n";
OSを調べる
$os = $^O;
print $os;
| $^Oの値 | 説明 |
| MacOS | MacOS |
| MSWin32 | Windows 全般 |
| os2 | OS/2 |
| VMS | VMS |
| epoc | EPOC OS |
| NetWare | NetWare |
| symbian | Symbian OS |
| dos | MS-DOS |
| cygwin | cygwin |
| linux | Linux |
| freebsd | FreeBSD |
| solaris | Solaris |
| Unix | Unix |
| darwin | Mac OS X |
| CentOS | Linux |
Hostの取得(SSL含む)
$site = $ENV{'REQUEST_SCHEME'} . "://" . $ENV{'HTTP_HOST'} . "/";
URLのパス部分を取得
$path = $ENV{'REQUEST_URI'};
https://example.com/test/page?param=value にアクセスすると、$ENV{'REQUEST_URI'} の値は /test/page?param=value となる。
アクセス中のURLを取得
$url = $ENV{'REQUEST_SCHEME'} . "://" . $ENV{'HTTP_HOST'} . $ENV{'REQUEST_URI'};
URLをディレクトリまで取得するにはファイル名やパラメーターを正規表現で削除する。
最後のスラッシュ以降の部分を削除
$url = $ENV{'REQUEST_SCHEME'} . "://" . $ENV{'HTTP_HOST'} . $ENV{'REQUEST_URI'};
$url =~ s|/[^/]*$||;
# https://example.com/test