Perl 文法チェック
2004-04-09-1 / カテゴリ: [programming][perl] / [permlink]
% perl -c script.plコンパイルのみ行い、実行はしない。
-w と併用も可能
正常なものは syntax OK と表示される。
1行目に #!/usr/bin/perl などがあっても実行はされない。
オープンした画像ファイルをCGIで表示
2004-04-02-1 / カテゴリ: [programming][perl][CGI] / [permlink]
print "Content-type: application/octet-stream\n\n"; open(F, "gazou.xxx"); binmode(F); print while(<F>); close(F);
fork で多重プロセス起動・全ての子プロセスを待って親の終了
2004-04-01-2 / カテゴリ: [programming][perl] / [permlink]
while( ) { if ($pid[$i] = fork) { 親(何もしない) } elsif (defined $pid[$i]) { 子(並列処理) exit; } else { fork失敗 } } foreach(@pid) { # 子のwait ("wait"ではダメ(子が一つ終了すると抜ける)) $cpid = waitpid $_, 0; } exit;
複数のファイルを一気に unlink
2004-04-01-1 / カテゴリ: [programming][perl] / [permlink]
配列・リストを渡す。
もしくは、
もしくは、
unlink </foo/bar/*>
任意のパスのモジュール用に @INC へパスを追加
2004-03-30-1 / カテゴリ: [programming][perl] / [permlink]
use lib "/path/to";変数に格納されたパスはなぜか無効…
use lib "$path"; <= NGまた、require 先で use lib を宣言し、呼出元で use Path::Module; も無効
require 先で use lib -> use Path::Module をまとめてやっておけばよい
変数が無効なのは、use はコンパイル時に読み込まれるため。変数に値が格納さ
れるのは実行時
fork で多重プロセス起動 Solaris 8
2004-03-23-1 / カテゴリ: [programming][perl] / [permlink]
while( ) { if ($pid = fork) { # おや next; } else { # こ (並列処理) exit; } } (子を待たずに処理)
flock によるファイルロック / ロック失敗時は待機せずに終了
2004-03-22-2 / カテゴリ: [programming][perl] / [permlink]
http://www.ichikoro.com/webp/bk/00055.html
http://ns1.php.gr.jp/pipermail/php-users/2004-January/020410.html
http://ns1.php.gr.jp/pipermail/php-users/2004-January/020410.html
{ open(F, "file"); $lock = flock(F, (LOCK_EX | LOCK_NB)); unless ($lock) { print "ロック中!終了します\n"; exit 1;} }こんな感じ
flock によるファイルロック
2004-03-22-1 / カテゴリ: [programming][perl] / [permlink]
use Fcntl qw(:flock);がないと、動かん
SunOS 5.8
と思ったけど、前言撤回
"LOCK_EX"などの文字定数を使う場合は、Fcntlが必要
"2"など定数を直接指定してやれば不要
最終更新時間: 2013-05-02 16:12