神戸の玉手箱

写真とプログラムのブログです。

Perlプログラムテクニック

2017年01月24日 | パール1
===========================================================================================================
_/_/_/_/_/_/_/_/_/_/ Perlプログラムテクニック 目 次 \_\_\_\_\_\_\_\_\_\_
===========================================================================================================
01.Perlプログラムの実行方法
02.Perlプログラムを実行前にチェックする方法
03.Perlコマンドラインオプション
04.Perlの場所を探す方法
05.Perlプログラムのデバッグ方法
06.カレントディレクトリの取得方法
07.ダブルクォーテーションとシングルクォーテーションの違い
08.複数行をコメントアウトする方法
09.グローバル変数とローカル変数
10.スカラー変数、配列、連想配列、定数
11.関数色々
    ①大文字を小文字に変換。(lc)
    ②小文字を大文字に変換。(uc)
    ③文字列から指定した部分を取り出す/置換する(substr)
     ・使用例
     ・substrは文字列を取り出すだけでなく、挿入したり置き換えたりすることもできる。
     ・変数の最後の文字を確認する例
    ④変数内の改行を削除する。(chomp)
    ⑤リスト(配列)操作関数(split)
    ⑥文字数をカウント(length)
    ⑦特定の文字列を間に挟む文字列の連結(join)
    ⑧カレントディレクトリの変更(chdir)
12.置換演算子 s///
    ・例1:置換文字列のところに計算式を書くこともできます.
    ・例2:置換文字列のところに関数だって書けます.
    ・例3:文字列の両端にあるスペースを削除する(Trim)
    ・例4:置換演算子の内容で置き換える
    ・スラッシュ( / )以外の区切り文字を使う事が出来ます。
    ・その他の例
      # GigabitEthernetをGiに置換
      # ,を削除
      # 文字列の最後に有る":"を削除
      # 行の先頭の空白を削除(空白だけの行は無くなる)
13.変換演算子 tr///
    ・例1:小文字に正規化
    ・例2:$wd に含まれる . の数を数える
    ・例3:英字以外をスペースに変換
    ・例4:連続した単語をひとつにまとめる
14.文字操作色々
    ・アルファベットのみを取出す(数字を削除)
    ・数字のみを取出す(文字列を削除)
    ・数字を取出し配列に格納する
    ・^Cを^に置換する
    ・先頭の複数の空白削除
    ・行末の複数の空白削除
    ・[^] とすると行頭の任意の1文字。
    ・[^^] とすると行頭以外の任意の1文字。
    ・[^$] と書くと、行末以外の任意の1文字
    ・変数の内容を入れ替える
    ・文字どおしを接続する時は、.(ピリオド)を使います。
    ・文字列を反転させる
    ・文字の整形(sprintf)
      ①年月日の整形例
      ②符号付整数例
      ③修飾子
      ④フォーマット指定子
15.標準出力に色を付ける Perl ライブラリ Term::ANSIColor
    ①モジュールのインストール
    ②使用例(Linux , Windows 共通で使用出来ます)
    ③使用できるコマンド一覧
    ④文字色一覧
    ⑤背景色一覧
16.配列処理色々
    ①配列で指定できる最大の添字抽出
    ②配列から文字列を検索する方法
    ③配列の最後の要素にアクセスする方法
    ④配列から重複した要素を取り除く方法
    ⑤配列関数
    ⑥配列関数を使用した操作例色々
      ■unshiftは、配列の先頭へ要素を追加
      ■pushは、配列の末尾へ要素を追加
      ■spliceは、配列の途中に要素を追加
      ■popは、配列の最後の要素を削除しその値を返します
      ■shiftは、先頭の要素を削除しその値を返します
      ■reverseは、配列の順序を逆順にする
    ⑦配列を展開する
    ⑧配列をソートする方法
    ⑨配列をコピーする方法
    ⑩配列を連結する方法
    ⑪配列の全要素を指定した文字で連結し、ひとつの文字列として返す方法
    ⑫requireで読み込んだファイル内に複数の配列が有った時の処理方法
    ⑬多次元配列
    ⑭配列の内容を変数に代入する
    ⑮配列初期化演算子(qw//)
17.ファイルハンドルの操作方法
    ・構文
    ・print, printfでの出力
    ・指定した文字コードによるファイルの読書き
      ① 全ての入力、全ての出力、又は全ての入出力に対してまとめて文字コード指定する方法
      ② 個々のファイルとのやり取りの時に個別に文字コードを設定する方法
      ③ もっと詳しく知りたい場合は下記参照
18.ファイル検査スイッチと使用例
    ・ファイルが有るかを調べる
    ・複数のファイル名をワイルドカードを使って取得するには
    ・ファイルサイズを調べる
    ・ファイルを削除する方法(unlink)
    ・複数のファイルをワイルドカードを使って削除するには(unlink)
    ・ファイルをゴミ箱に捨てる(Recycle)
    ・ファイル名を変更する方法(rename)
    ・ファイルをコピーする方法(copy)
    ・ファイルを移動する方法(move)
    ・ファイルの様々な情報を得るための関数(stat)
    ・ディレクトリを再帰的にたどりファイル一覧を取得する方法
    ・ディレクトリの存在確認をする方法
      ① 指定したディレクトリが存在しない場合の例
      ② 指定したディレクトリの有無で処理分岐する例
    ・他のテクニック
      # 全てのtxtファイルを配列に読み込む
      # 全てのファイルを配列に読み込む
      # 上位ディレクトリのすべてのファイルを配列に読み込む
      # 開いたファイルから1行を変数に読み込む(1行目から順に読み込まれる)
      # 開いたファイルの全ての内容を配列に読み込む
      # 変数の内容をファイルに書き込む例
      # ファイルに=を100個出力する例
      # 40から$hostname[$i]の文字数を引いた文字数分の'■'を書く
      # ENDに続けて■を37個出力する
      # 変数の内容を書き込んだ後ろに続けて57列まで空白を書き込みたい時の方法
19.制御構造
    ・if 文を使って条件分岐
    ・unless 文を使って条件分岐
    ・for で繰り返し
    ・foreach で繰り返し
    ・while で繰り返し
    ・until で繰り返し
20.ループ制御コマンド
    ① next
    ② last
    ③ continue
    ④ redo
    ⑤ exit
    ⑥ 繰り返し処理にラベルを付ける
21.サーバでのLinuxコマンド実行方法
    ・ファイルリストを取得する
    ・年月のフォルダを作成
    ・ファイルを移動する
    ・ファイルをコピーする
    ・ファイルを削除する
    ・Perlプログラムを実行する
    ・cfgmakerを実行する
22.サーバへSSH2でログインする方法
    ・使えるコマンド
    ・変換できる日本語文字コードの取得方法
    ・設定例
23.サーバへFTP接続する方法
24.ネットワークへのアクセス方法
    ・アクセス例
    ・他の方法
    ・コマンドを実行してプロンプトが帰って来るのを待つ方法
    ・テルネットした時タイムアウトでログイン出来ないとプログラムが止まってしまうのを回避する方法
    ・Telnetクライアントモジュールの詳細
    ・DOS窓でPingする方法
25.メタキャラクタ
    ・正規表現で使われる主なメタキャラクタは次の通り
    ・メタ文字は以下のようなものがある。
26.特殊変数($X)
27.パターンマッチ特殊変数使用例
    ・$`、$&、$'の使用例
    ・スクリプトファイル名の取得方法 $0
28.等値演算子
    ・代入
    ・数値用比較演算子
    ・文字用比較演算子
    ・算術演算子
    ・インクリメント演算子/デクリメント演算子
    ・論理AND 論理OR NOTの例
    ・四捨五入
    ・文字列と数値の自動変換
    ・数値列から特定の数字を含んだ数値列を取出すには
29.サブルーチン
    ・サブルーチンの宣言
    ・サブルーチンの呼出し
    ・サブルーチンに渡された引数は特殊配列変数 @_ に格納される
    ・ローカル変数
    ・サブルーチンからの帰り
    ・使用例
30.「Use of uninitialized value」エラーの回避策(defined)
31.配列に代入されたデータの先頭に"%"が有った時プログラムが止まってしまう事象の回避方法
32.年月日時間操作
    ① strftime
      ・strftimeの書式文字
      ・使用例
      ・本日の曜日の取得
      ・シリアル値からの年月日時分秒取得
    ② Date::Simple
      ・インストール
      ・当日の前日・翌日取得
      ・特定日の前日・翌日取得
      ・日数差を求める
      ・入力された年月日の正常性を判定するプログラム
      ・その他
    ③ localtime EXPR
      ・使用例1 (経過日数の取得)
      ・使用例2 (年月日時分秒からシリアル値の取得)
      ・使用例3 (年月日時分秒をシリアル値に変換する関数使用)
    ④土休日を判定するモジュール
      ・土日祝日かどうかを返す関数(Holiday(シリアル値))
      ・土日祝日のフラグと祝日名を返す関数(HolidayName(シリアル値))
33.偶数・奇数の判定
34.フォーマット
    ・フォーマット宣言
    ・フィールドピクチャの一覧
    ・(例1)~(例4)
35.暗号化・複合化の方法(Crypt::RC4)
    ・例1(そのまま一つずつ処理を行うバージョン)
    ・例2(パスワードの暗号・複合をサブルーチン化したバージョン)
    ・例3(パスワードの複合をサブルーチン化したバージョン)
36.クリップボードを使用する
37.ホームページ関連
    ・URLよりドキュメントを取り出す
    ・ホームページから取出したドキュメントの文字コードを変換する
    ・前日の最終バージョンのファイル名を探す
    ・ファイルをダウンロードする
    ・ダウンロード済みの容量を%でリアルタイムに表示する
38.数字を三桁ずつカンマで区切る関数
39.プログラム内から外部プログラムを起動した時、すぐメインプログラムに処理を戻す方法
40.写真のExifデータを取得する方法
41.その他
    ① プログラム内にPathを書く時の注意点
       ・Path区切り文字の注意点
       ・空白文字を含むパスを書く時の注意点
    ② Linuxサーバ内でファイル名一覧を収集する
    ③ コマンドライン引数の取得
    ④ 条件判断を簡潔に書く方法記述