770 likes | 1.1k Views
Perl 基礎. Lesson 1: Perl 入門. 目標. Perl の利点 Perl インタプリタの役割 Perl の基本的な文法の特徴 print 関数の使用 簡単な Perl スクリプトを作成し実行 スカラー変数の定義 算術演算子の使用. Practical Extracting and Reporting Language. なぜ Perl を使うのか? 柔軟性 簡単な文法 ゆるやかなコンパイラ制限 無料で利用できること. Perl を使う. Shebang 構文 Perl スクリプトの1行目を shebang 行と呼ぶ
E N D
目標 • Perlの利点 • Perlインタプリタの役割 • Perlの基本的な文法の特徴 • print関数の使用 • 簡単な Perlスクリプトを作成し実行 • スカラー変数の定義 • 算術演算子の使用
Practical Extractingand Reporting Language • なぜ Perlを使うのか? • 柔軟性 • 簡単な文法 • ゆるやかなコンパイラ制限 • 無料で利用できること
Perlを使う • Shebang構文 • Perlスクリプトの1行目をshebang行と呼ぶ • 例: #!/usr/bin/perl • #! (shebang)の後にPerlプログラムの場所を明記
Perlを使う • 簡単な Perl scriptの作成例 #!/usr/bin/perl print(“hello,World\n”); ※引数(パラメータ)は丸括弧で囲む ※追加パラメータはカンマで区切る ※Perl命令の最後に;(セミコロン)を付ける ※ \(メタ文字)・・・特別な意味を持つ文字 (\n・・・改行 を意味する)
スカラー変数:数値変数 • スカラー変数 • 1つの独立した値で定義される変数 • 数値変数と文字列変数がある • 数値変数 • ドル記号($)の後に英数文字の指示子を付け表記 • 代入演算子と算術演算子としての利用
代入演算子 • スカラー変数は、数値を代入すると 数値変数として使用できるようになる 代入の例: ① $myVariable=10 ・変数$myVariableには値10が代入される ② $mySecondVariable=$myVariable ・$myVariableに代入されている値(10)が $mySecondVariableにも代入される
算術演算子 • 変数を式に含めることが出来る 加算結果代入の例: $x=10; ←変数$xに10を代入 $y=15; ←変数$yに15を代入 $sum=$x + $y ←変数$sumに加算結果25を代入
スカラー変数:文字列変数 • Print関数で使用される • 文字列データを変数に一次保存し使用する 文字列データの一時保管の例: $helloWorld=“helloWorld\n”; print($helloWorld); ・変数$helloWorldにhelloWorld\nが代入される ・出力結果は hello,World
STDINからデータを取り出す • STDINはスクリプト実行中に、ユーザから データを受け取るための仕組み • chomp()関数 文字列の後ろから改行文字を取り除く関数 (STDINで受け取った文字列には必ず \nが付く 問題を改善する)
目標 • 比較演算子の評価 • if文の作成 • elseとelsif分岐命令 • do~while文の作成 • ループ制御コマンドの使用 • I/O(入出力)宛先変更の規則
Perlの条件式 • 数値の比較演算子 例:(5==10) ($x==10) ($x<=20) • 文字列の比較演算子 例:(“Takako” eq “Tarou”) • 論理演算子 例:($x>=10 || $x<=20)
if文 • if~else分岐命令 • 条件式が真の場合と偽の場合で実行コードを定義 ⇒2分岐 • elsif分岐命令 • 条件式が偽で、さらに偽の条件式が真の場合と 偽の場合で実行コードを定義 ⇒3分岐以上
While文 • 2つ目の制御構造 • 条件式が真である限り、繰り返し実行される while(条件式) { 命令_1; “真”である間は繰り返す 命令_2; }
do~while文 • While文と違い、一度コードが実行されてから 条件が評価されるループ文 do { 命令_1; コード群の命令は、 命令_2; 最低1回繰り返す }while(条件式);
for 文 • セミコロンで区切られた3つの式が含まれる • カウンタを初期化し、コード群毎に増分する 機能を持つ for(初期状態;終了条件;継続処理) { 命令_1; 命令_2; }
ループの制御 【ループの制御コマンド】 • last • ループを完全に抜ける • next • ループの現在の処理を中断し、次の繰り返し処理に 直接進む • redo • 現在のループを最初からやり直す
I/O(入出力)宛先変更 • 多くのperlスクリプトでは 、入出力(I/O)の宛先変更を使用している • Windows、UNIX、Linuxでは < > (括弧)を使用して実行される
目標 • 正規表現の定義 • パターンマッチの実行 • メタ文字の定義 • 文字クラスの説明 • 限定子およびアサーションの定義 • 置換の実行 • 結合演算子の使用
正規表現 • パターン結合演算子 • パターンマッチ実行の際に使用される演算子 【=~】及び【!~】と【m//】や【S/// 】を組合わせて使用 • エスケープキャラクタとメタ文字 • パターンマッチ実行の際に使用される演算子 より複雑なマッチ条件を与える (文の先頭文字が一致した場合のみ、など)
文字クラス • 文字列の値がマッチする文字リストを示す 例:文字aまたはAで始まる入力値が必要である / ^ [aA]; ・・・[ ]文字クラス作成のメタ文字
パターンマッチと置換演算子 • パターンマッチを利用した置換 • s///演算子 を使用する s/検索文字列/置換後文字列/[修飾子]
目標 • 配列の目的 • リストを使用し配列の定義 • 配列要素へのアクセス • Sort関数を使用して、配列をアルファベット順に並べる • foreachループを使用して配列を読む • push, pop, shift, unshift, split,join関数
10 20 30 40 Perl配列 入門 • 配列の初期化 例: @myArray=(10,20,30,40) myArray 初期値 0 1 2 3 • 配列の値を呼び出す 例: print($myArray[0]) この場合、10が結果
sort 関数 • 配列=引数 として受取り、配列値を アルファベット順に並べ替える関数
Foreach文 • 配列やリストを繰り返すための特別な制御構造 • 一連の命令群には、この配列を操作するためのコードを明記しなければならない
Taro Jiro Sabu Siro push関数とpop関数 • Push関数 • 値を配列の末尾に積み重ねる 例: @nameStack=(”Taro”,”Jiro”); push(@nameStack,”Sabu”) push(@nameStack,”Siro”) 0 1 2 3 • pop関数は、配列の最後の値を取り出すために使用
shift関数とunshift関数 • unshift関数 • 配列の先頭に値を追加し、配列を右にシフトする • shift関数 • 配列の先頭の値を取り出し、配列を左にシフトする • 配列を待ち行列として使用する
Split 関数とjoin関数 • split関数 • 文字列を分割し、配列の個々に保存する • join関数 • 配列の値を統合し、1つの文字列を作成する
目標 • ハッシュ(連想配列)の目的 • リストを使用したハッシュの定義 • Accessハッシュ値へのアクセス • delete, keys, values, each, reverse 関数
Perlのハッシュ(連想配列)入門 • 配列と同様、ハッシュはスカラー値の集合体 であり、個々にアクセスすることが出来る • 個々の値にアクセスするためには、キーを 使用する • 連想配列として知られる
ハッシュ値の追加と削除 • Delete関数 • Keys関数 • values関数 • Each関数 • reverse関数
目標 • サブルーチンの定義と使用 • 直接、間接的なサブルーチンの呼び出し • 値のサブルーチンへの受け渡し • リファレンスのサブルーチンへの受け渡し • 変数範囲の説明 • サブルーチンからの返り値
Perlサブルーチンの初歩 • サブルーチンの定義 • 宣言: subサブルーチン名; • サブルーチンの呼び出し • 引数を渡す • 引数はスカラー値のリストとして受け取る • 戻り値 • returnキーワード • sort関数とサブルーチン
変数範囲 • my演算子を使用することにより、 サブルーチン内でのみ適用される変数を作成 • スカラー • 配列 • ハッシュ • これらを受け取ると、サブルーチン内のローカル版として 扱う
リファレンス • 無名の配列へのリファレンス作成 • 括弧を使用し作成する • 例: $array_ref=[“値1”,“値2 ”, “値3”]; • 無名のハッシュへのリファレンス作成 • 括弧を使用し作成する • 例: $hash_ref={ • key1=>”値1” • key2=>”値2” • }; • サブルーチンへリファレンスを渡す
目標 • ファイルハンドルの定義と使用 • open関数を使用してファイルハンドルの取得 • ファイルへのデータの出力 • close関数を使用してファイルを閉じる • 読み込むためのファイルを開く • Stat関数とlstat関数を使用してファイル に関する情報の取得
Perl におけるファイルの入出力 • ファイルハンドルとは? • Perlプログラム中の名前と物理的なファイルや装置を対応させる ※perlが識別する3つの基本ハンドル
Perl におけるファイルの入出力 • open関数 • ファイルハンドルを開くために使用 • 引数にファイルハンドル名、ファイルや装置の名前などを受け取る Open(READFILE,”mytext.txt”) ・READFILE・・・ファイルハンドルの例 ・mytext.txt・・・それに対応するファイルの例
Perl におけるファイルの入出力 • データのファイルへの出力 • print ファイルハンドル名 • 情報を読み取るためにファイルを開く
Perl におけるファイルの入出力 • 他のファイル関連の関数 • tell関数 • ファイルハンドル内のファイルポインタの位置を返す • 値はバイト数で返される • Seek関数 • ファイル内のファイルのポインタの位置を設定する seek(FILEHANDLE,POSITION,WHENCE) POSITION・・・バイト番号の整数 WHENCE・・・ファイルポインタを置くためのファイル の相対位置を示す
Perl におけるファイルの入出力 • ファイルに関する情報の検索 • stat関数とlstat関数