perl memo


#! /usr/bin/perl                                        # スクリプトの先頭行
use strict;                                             # 厳しい文法モード
require './cgi-lib.pl';                                 # 外部ファイル展開
1;                                                      # requireされるファイルの最終行
exit 0;                                                 # プログラム終了

$num = 1;                                               # 変数に数値代入
$str = 'ABCDEFG';                                       # 変数に文字列代入
$str = "num = $num";                                    # 変数に文字列代入(変数展開有り)
$hash{'key'} = $value;                                  # ハッシュ変数に代入
%hash = ();                                             # ハッシュ変数初期化
$arry[0] = $value;                                      # 配列に代入
$i++;                                                   # 数値インクリメント
$i--;                                                   # 数値デクリメント
$ARGV[0]                                                # 引数の1個目

$str =~ s/befor/after/eg;                               # 文字列置換
$count = $string =~ s/poipoi/poipoi/g;                  # 文字列出現回数カウント

$str = sprintf("%-s\n", $var);                          # 書式付き代入
$str = "AAA" . $var . "BBB";                            # 文字列連結
$cnt1 = substr $cntstr,0,1;                             # 文字列切り出し
($ip, $daytime) = split(/\t/, $rec);                    # 文字列分割
@arry = split(/[,\t]/, $body);                          # 文字列分割
@arry = split(/[,\t]/, $body, 10);                      # 文字列分割(MAX 10)
$val =~ tr/+/ /;                                                # urlデコード
$val =~ s/%([0-9a-zA-Z][0-9a-zA-Z])/pack("C",hex($1))/eg;       # urlデコード

print "string \n";                                      # プリント文

open(FH, ">/tmp/junk.txt");                             # ファイルオープン(出力)
open(FH, ">>/tmp/junk.txt");                            # ファイルオープン(追加)
print FH $rec;                                          # ファイル出力
printf FH "%-s\n", $rec;                                # 書式付きファイル出力
close(FH);                                              # ファイルクローズ

open(FH, "</tmp/junk.txt");                             # ファイルオープン(入力)
$rec = <FH>;                                            # 1行入力
chop $rec;                                              # 行末1文字削除
close(FH);                                              # ファイルクローズ

rmdir("/tmp/junk");                                     # ディレクトリ削除
umask "0002";                                           # umask設定
chmod(0640, "/tmp/junk.txt");                           # ファイルパーミッション設定
unlink("/tmp/junk.txt");                                # ファイル削除

read(STDIN, $buf, $ENV{'CONTENT_LENGTH'});              # 指定バイト入力

if ($str1 eq $str2){                                    # if文(文字列比較)
if ($str1 ne $str2){                                    # if文(文字列比較)
if ($str1 ge $str2){                                    # if文(文字列比較)
if ($str1 le $str2){                                    # if文(文字列比較)
if ($str1 gt $str2){                                    # if文(文字列比較)
if ($str1 lt $str2){                                    # if文(文字列比較)
if ($num1 == $num2){                                    # if文(数値比較)
if ($num1 != $num2){                                    # if文(数値比較)
if ($num1 >= $num2){                                    # if文(数値比較)
if ($num1 <= $num2){                                    # if文(数値比較)
if ($num1 > $num2){                                     # if文(数値比較)
if ($num1 < $num2){                                     # if文(数値比較)
if ($msg =~ /re/ && ... ){                              # if文(正規表現 かつ)
if ($msg =~ /re/ || ... ){                              # if文(正規表現 または)
}elsif ( ... ){                                         # if文
}else{                                                  # if文
}                                                       # if文

while (mkdir("$Datdir/$Lockdir", 0700) == 0){           # while文(mkdir失敗する間)
while ($rec = <FH>){                                    # while文(EOFまで)
while ( ... ){                                          # while文
    last;                                               # ループ抜ける
}                                                       # while文

for ($i = 1; $i <= 10; $i++){                           # for文
}                                                       # for文

foreach $i (@arry){                                     # foreach文(配列要素分)
foreach $key (sort keys(%input)) {                      # foreach文(ハッシュキー分昇順)
}                                                       # foreach文

$brws = $ENV{'HTTP_USER_AGENT'};                        # 環境変数取得
$result = `cat /tmp/foo.txt`;                           # コマンド実行結果取り込み

$foo = &func_foo($arg1,$arg2);                          # 関数呼び出し
sub func_foo {                                          # 関数
    my ($arg1,$arg2) = @_;                              # 関数
    my ($local1,$local2);                               # 関数
}                                                       # 関数

sleep (1);                                              # sleep秒
system("$Cmd");                                         # コマンド実行
($sec,$min,$hour,$day,$month,$year,$wday,$yday,$isdst) = localtime(time);       # 時刻取得

use NKF;                                                # nkfモジュール
$input = nkf('-e', $str);                               # nkf euc変換
$input = nkf('-s', $str);                               # nkf sjis変換

use Net::FTP;                                           # ftp利用
$ftp = Net::FTP->new('ftp.server.org', Debug => 1, Passive => 1);
$ftp->login('account','password');
$ftp->binary;
$ftp->cwd('dir');
$ftp->put('source_file', 'dest_file');
$ftp->quit;

while (mkdir("/tmp/foo.LOCK", 0700) == 0){              # 排他制御
    sleep (1);
#
    open(FH_LOCK, "</tmp/foo.LOCK/lockfile");
    $pid = <FH_LOCK>;
    close(FH_LOCK);
#
    if (kill(0, $pid) == 0){
        unlink("/tmp/foo.LOCK/lockfile");
        rmdir("/tmp/foo.LOCK");
    }
}
open(FH_LOCK, ">/tmp/foo.LOCK/lockfile");
printf FH_LOCK $$;
close(FH_LOCK);

if (kill(0, $lock_pid) == 0){                           # プロセス存在チェック
    存在しない
}else{
    存在する
}


[更新] [戻る]
m-ito@myh.no-ip.org