perl


関数

  • chop 改行切り落とし
    chop(word);
  • defined 値が定義されているかどうかで真偽を返す
  • 内部関数はselfが引数としてこないっぽい
    read_between(); selfなし
    $obj->read_between(); selfあり
  • 実行パス獲得
    use FindBin qw($Bin);
    use lib "$Bin/../lib";  #これでパスをかくとくー

演算子

  • qw
    qw (term term1 term2 ); #とすると空白で区切って右辺に格納する 
  • ?と:
    my $term = $flag ? a : b;  #とすると$flagが真なら$termにaを代入, 偽ならbを代入
  • map
    my @double = map { $_ * 2 } @num; #@numの値を二倍して@doubleに格納  mapは配列を置換する

テスト

  • 続・初めてのperl にテストの内容があるみたい
  • テストファイルの名前の最初は数字
  • ディレクトリ(例: t)以下のテストを全て実行するコマンド
    prove -l t

YAML

関連ページ


困ったこと

  • perlモジュールの場所を調べる
    perl -e 'print "@INC" #コマンドラインでこれを入力する
  • perlモジュールのドキュメントを読む
    perldoc XML::Simple #XML::Simpleのドキュメントを読む
  • perlモジュールのソースを読む
    perldoc -m XML::Simple #XML::Simpleのソースを読む
  • 関数の呼び出し元や行番号を調べる
    use Data::Dumper;
    my @call_info = caller;
    print STDOUT Dumper(\@call_info);
  • Encode
    use Encode qw/ encode decode/ ;
    encode('euc-jp',$line);
  • 文字コード判定
  • 文字列置換
    $str="   Hello test            test   ";
    $str=~ s/(?:test)/inaba/g;
    print $str;
  • utf8フラグをはずす
    print utf8::is_utf8($string) ? 'flagged' : 'no flag'; #ついているか確認
    $string = encode('utf8',$string); #デフラグ 注:文字コードはutf8になる
  • 配列を引数とするとき
    @arg = @_; #これで全ての引数を受け取れる 同時に変数を取得する場合,これより先にshiftする必要あり