RSS

カテゴリー別アーカイブ: Perl

Perl: インストールされている Perl モジュール一覧を表示する。

つぎのスクリプトを実行すると、そのマシンにインストールされている Perl モジュール一覧を表示する。

find `perl -e ‘print “@INC”‘` -name ‘*.pm’ -print

 

 

広告
 
コメントする

投稿者: : 2016/10/21 投稿先 Perl

 

環境変数 PATH の内容を見やすく表示する

次の Perl スクリプトは、環境変数 PATH の内容を見やすく表示する。

#!/usr/bin/perl

$_ = $ENV{"PATH"};
@paths = split /:/;

foreach (@paths) {
  print "$_\n";
}

実行例

/usr/local/bin
/bin
/usr/bin
/usr/local/sbin
/usr/sbin
/sbin
 
コメントする

投稿者: : 2016/10/20 投稿先 Linux, Perl

 

Perl: Perl module (pm) 一覧を表示するには

現在の環境にインストールされた Perl Module (pm) の一覧は次のワンライナーを実行すると表示できる。

find `perl -e ‘print “@INC”‘` -name ‘*.pm’ -print

 

 

 
コメントする

投稿者: : 2016/10/13 投稿先 Perl

 

IIS 8.5 Perl CGI を使うには

まず、CGIを置く仮想フォルダを作ります。(既存のフォルダを利用しても構いません)

次の例では仮想フォルダの名前を cgi-bin に、物理フォルダをc:\inetpub\cgi-bin にします。

  1. このフォルダをIIS偽装ユーザ(IUSR)がアクセスできるようにパーミッションを設定します。
  2. IISマネージャを開き、ウェブサイトを選んでコンテキストメニュー「仮想ディレクトリの作成」を実行します。
  3. ダイアログが開いたら物理パスをc:\inetpub\cgi-bin、エイリアスをcgi-binにします。
  4. OKボタンをクリックすると仮想フォルダが作成されます。
  5. cgi-binを選択し、IISグループの「ハンドラーマッピング」アイコンをダブルクリックします。
  6. メニュー「スクリプトマッピングの追加」を実行します。
  7. 下の画像のように値を設定します。
  8. OKボタンをクリックし、”CGI”をマッピングに追加します。

画像

 
コメントする

投稿者: : 2014/05/28 投稿先 Perl

 

タグ: , ,

Premature end of script headers

Windows で作った Perl CGI を Linux で動かそうとして

Premature end of script headers

というエラーが出たら、たいてい、

#!/usr/bin/perl

の行末が”\r\n”になっているためです。行末を”\n”だけに変更するとたいていこのエラーが解消されます。

 
コメントする

投稿者: : 2014/05/25 投稿先 Perl

 

タグ: ,

Perl FTP

ShowFiles.pl

#
#  ShowFiles.pl : 指定したリモートディレクトリ内のファイル一覧を表示する
#    (ex) perl ShowFiles /public_html
#

use strict;

# モジュールの読み込み
use Net::FTP;

# パラメータ指定がなければエラーとする
if ($#ARGV < 0) {
 die "Usage: perl GetFiles.pl <Remote file> <Local directory>";
}

my ($addr, $userid, $password) = readconf('ftpconf.txt') or die('Error: config file not found.');

# FTPサーバへの接続(ホスト名でもIPアドレスでもOK)
my $ftp = Net::FTP->new($addr) or die('Error: Net::FTP->new');

# ユーザ名とパスワードを指定してログイン
$ftp->login($userid, $password);

# ファイル一覧を取得する
my @files = $ftp->ls($ARGV[0]);

# 接続を終了する
$ftp->quit;

# ファイル一覧を表示する
foreach (@files)
{
 print "$_\n";
}

#
#  アドレスとユーザID、パスワードをファイルから読み込む
#   ファイル内容はカンマ区切りテキスト1行とする。
#       address,userid,password
#
sub readconf
{
 my $filename = shift;

 # ファイルを開く
 open(my $fh, $filename);

 # 1行読む。
 $_ = <$fh>;

 # カンマ区切りテキストとして要素に分割
 my @a = split(/,/);

 # ファイルを閉じる
 close($fh);

 return @a;
}

GetFiles.pl

#
#  GetFile.pl : 指定したファイルをダウンロードする。
#   (ex) perl GetFile.pl /public_html/index.html .
#

use strict;

# モジュールの読み込み
use Net::FTP;

# パラメータ指定がなければエラーとする
if ($#ARGV < 1) {
 die "Usage: perl GetFile.pl <Remote file> <Local directory>";
}

# アドレス、ユーザID、パスワードをファイルftpconf.txtから読み取る
my ($addr, $userid, $password) = readconf('ftpconf.txt') or die('Error: config file not found.');

# FTPサーバへの接続(ホスト名でもIPアドレスでもOK)
my $ftp = Net::FTP->new($addr) or die('Error: Net::FTP->new');

# ユーザ名とパスワードを指定してログイン
$ftp->login($userid, $password);

# 必要なら下のどちらかをコメントアウトすること
#$ftp->ascii;
#$ftp->binary;

# ファイルを取得する
my $remote_file = $ARGV[0];
my $local_dir = $ARGV[1];
chdir($local_dir);
$ftp->get($remote_file);

# 接続を終了する
$ftp->quit;

printf("Done.\n");

#
#  アドレスとユーザID、パスワードをファイルから読み込む
#   ファイル内容はカンマ区切りテキスト1行とする。
#       address,userid,password
#
sub readconf
{
 my $filename = shift;

 # ファイルを開く
 open(my $fh, $filename);

 # 1行読む。
 $_ = <$fh>;

 # カンマ区切りテキストとして要素に分割
 my @a = split(/,/);

 # ファイルを閉じる
 close($fh);

 return @a;
}

PutFiles.pl

#
#  PutFile.pl : 指定したファイルをアップロードする。
#   (ex) perl PutFile.pl index.html /public_html
#

use strict;

# モジュールの読み込み
use Net::FTP;

# パラメータ指定がなければエラーとする
if ($#ARGV < 1) {
 die "Usage: perl PutFile.pl <Local file> <Remote directory>";
}

# アドレス、ユーザID、パスワードをファイルftpconf.txtから読み取る
my ($addr, $userid, $password) = readconf('ftpconf.txt') or die('Error: config file not found.');

# FTPサーバへの接続(ホスト名でもIPアドレスでもOK)
my $ftp = Net::FTP->new($addr) or die('Error: Net::FTP->new');

# ユーザ名とパスワードを指定してログイン
$ftp->login($userid, $password);

# 必要なら下のどちらかをコメントアウトすること
#$ftp->ascii;
#$ftp->binary;

# ファイルを転送する
my $local_file = $ARGV[0];
my $remote_dir = $ARGV[1];
$ftp->cwd($remote_dir);
$ftp->put($local_file);

# 接続を終了する
$ftp->quit;

printf("Done.\n");

#
#  アドレスとユーザID、パスワードをファイルから読み込む
#   ファイル内容はカンマ区切りテキスト1行とする。
#       address,userid,password
#
sub readconf
{
 my $filename = shift;

 # ファイルを開く
 open(my $fh, $filename);

 # 1行読む。
 $_ = <$fh>;

 # カンマ区切りテキストとして要素に分割
 my @a = split(/,/);

 # ファイルを閉じる
 close($fh);

 return @a;
}
 
コメントする

投稿者: : 2010/11/22 投稿先 Perl

 

タグ: