サイバーリドル

Perlに関するメモ

Perlを使っていて、忘れがちなものたち

Perlの中で普段何気なく使っているのに、ふと思い出せなくなるプチルーチンや、そもそもコピペが基本なので覚える気がないものたちを集めました。

  1. 外部ファイルの関数を使う
    require './subrtn.pl';
    subrtn::sub_rtn();
    
  2. 変数の自動生成を許さない
    use strict;
    
  3. 乱数を発生させる
    $wk = int(rand(10));
    
  4. 数値を文字に変換する
    $char = chr($num);
    
  5. 文字を数値に変換する
    $num = ord($char);
    または
    $num = $char + 0;
    
  6. 文字列を結合する
    $str1 = $str1 . $str2;
    $str1 = "$str1$str2";
    
  7. カンマ繋ぎの文字列にする
    $wk=join(',', @str);
    
  8. 文字列を分割する
    ($hour, $min, $sec) = split(/:/, $str);
    
  9. 文字列の一部を取り出す
    $wk = substr($str,5,2)
    
  10. 文字列の改行文字を消す
    chomp($line);
    $line =~ s/\n//;
    $line =~ s/\r//;
    
  11. 文字列の文字コードを取り出す
    @str=unpack("C*","あいう");
    
  12. 変数の値を入れ替える
    ($wk1, $wk2) = ($wk2, $wk1);
    
  13. 配列を作る
    @mst=("黒","赤","緑","青","白");
    
  14. 配列の中身を空にする
    @mst = ();
    または
    undef @mst;
    で完全に消える
    
  15. 配列をまとめる
    @wk1 = (@wk1, @wk2);
    
  16. 配列の数を取得する
    $wk=$#mst;
    
  17. 配列を文字列でソートする
    @result = sort @mst;
    
  18. 配列を数値でソートする
    @result = sort { $a cmp $b } @mst;
    @result = sort { $b cmp $a } @mst;
    @result = sort { $a <=> $b } @mst;
    @result = sort { $b <=> $a } @mst;
    
  19. 配列を逆順にする
    @result = reverse @lines;
    
  20. 配列を絞り込む
    @result = grep(/^hoge/,@lines);
    
  21. 配列の中身すべてに対してループで何か処理をする
    foreach $line ( @lines ) {
     &hoge;
    }
    
  22. 配列をシャッフルする
    for($i=0; $i<$#wk+1; $i++){
     $a=int(srand($#wk+1));
     $b=int(srand($#wk+1));
     (@wk[$a],@wk[$b])=(@wk[$b],@wk[$a]);
    }
    
  23. 連想配列を作る
    %mst=("0","黒","1","赤","2","緑","3","青","4","白");
    
  24. 動的にファイル名を変える
    $wk = $data_file . sprintf("%04d",$FORM{'file_no'}) . ".dat";
    
  25. ファイルの存在を調べる
    if (-e $filename)
    
  26. ファイルの容量を調べる
    @fileinfo = stat ( $filename ) ;
    $filesize = $fileinfo[ 7 ] ;
    
  27. 受け取る容量に制限を付ける
    if ($ENV{'CONTENT_LENGTH'} > 1024 ) { print "Status: 204\n\n"; exit; }
    
  28. リダイレクトさせる
    print "Location:$url\n";
    
  29. 文字列を暗号化する
    $cryptpw = crypt($password,$salt);
    
  30. 引数を受け取る
    $wk=@_[0];
    または
    @wk=@_;
    
  31. アクセス権限を変更する
    chmod 0600, "$DATA_FILE";
    
  32. JPEG画像を表示する
    open (IMG,"$img_file");
    binmode (IMG);
    binmode (STDOUT);
    print "Content-type: image/jpeg\n\n";
    print <IMG>;
    close IMG; 
    
  33. CPUタイムを取得する
    ($user,$system,$cuser,$csystem) = times;
    

Perlに関するメモ CYBER RIDDLE