perl 基礎
勉強しつつ、まとめています。間違ってたら御免なさい。
例:ランレベル3のサービスを表示
例:入力された数値だけを表示
変数
種類
- VAR
- ファイルハンドル、ディレクトリハンドル
- $VAR
- スカラー変数
- @VAR
- リスト
- %VAR
- 連想リスト(インデックスが文字列)
- &VAR
- サブルーチン
特別な変数
- $_
- 作業用スカラ変数、ファイルから読み込んだ値が入ったり、省略されたり
- ARGV
- コマンドライン引数のファイルが順に入ったファイルハンドル
- @ARGV
- 引数リスト
- STDIN
- 標準入力
- STDOUT
- 標準出力
- STDERR
- 標準エラー出力
入出力
オープン
読み込み用に開く
open(HANDLE, "filename");
新規作成、書き込み
open(HANDLE, "> filename");
追加書き込み
open(HANDLE, ">> filename");
パイプから入力
open(HANDLE, "command |");
例:ランレベル3のサービスを表示
open(HANDLE, "chkconfig --list | grep 3:on | cut -f 1 |"); while (<HANDLE>) { print; } close(HANDLE);
パイプに出力
open(HANDLE, "| command");
読み込み、書き込み
一行読み込み
$var = <HANDLE>改行も読み込みます。改行文字が不要の時は、chopを使えばOK.
例:入力された数値だけを表示
while (<HANDLE>) { print if /^[0-9]+\n$/; }
出力
だいたいこんな感じ print HANDLE "abcdefg\n", "hijklmn\n"; printf HANDLE "%f\n", 3.14;