| -ne: | 引数で指定した各ファイルから一行ずつ読み込んで、その各行を $_ に入れる処理を繰り返す。 |
| -pe: | -ne と似ているけど、繰り返し処理の最後で $_ を print する(らしい)。 |
| 文字列 | 入出力モード |
| "r" | 読み込みのみ。ファイルが存在しない場合はエラーになる |
| "r+" | 読み込み+書き込み。ファイルが存在しない場合はエラーになる |
| "w" | 書き込みのみ。ファイルがなければ新規作成。あればサイズを0にする。 |
| "w+" | 読み込み+書き込み。ファイルがなければ新規作成。あればサイズを0にする。 |
| "a" | 追加書き込み。ファイルがなければ新規作成。ファイル末尾にseekする。 |
| "a+" | 追加読み込み+書き込み。ファイルがなければ新規作成。ファイル末尾にseekする。 |
| 定数 | 基本的な入出力モード |
| RDONLY | 読み込み |
| WRONLY | 書き込み。 |
| RDWR | 読み込み+書き込み。 |
| 定数 | 補助的な入出力モード |
| CREAT | 指定したpathにファイルが存在しない場合は作成する。この定数が指定されない場合、ファイルが存在していなければエラーになる。 |
| EXCL | CREATと一緒に指定された場合、ファイルが既に存在した場合にエラーになる。 |
| NOCTTY | 指定したpathがterminalデバイスを参照していて、かつプロセスが制御端末を持たない場合でも、そのterminalが制御端末にならない。 |
| TRUNC | ファイルが既に存在し、通常ファイルであり、書き込み可能モード(RDWR又はWRONLY)が指定されている場合、そのファイルの長さは0に切り詰められる。 |
| APPEND | ファイルを追加モードでオープンし、ファイル末端にseekする。 |
| NONBLOCK NDELAY |
ファイルをnonblockingモードでオープンする。openを始めとする、ファイルディスクリプタに対する全てのシステムコールはブロックしない。ブロックが発生しそうな場合にはシステムコールが失敗する。 |
| SYNC | ファイルを同期I/Oモードでオープンする。ファイルディスクリプタに対する全てのwriteは、実際に書き込みが完了するまで終了しない。 |
# total: 総行数
# nfile: ファイル数
total = 0
nfile = 0
for file in ARGV
n = 0
File::foreach( file ) do
n += 1
end
printf "file %s has %d lines \n", file, n
total += n
nfile += 1
end
printf "total %d files %d lines \n", nfile, total
これのモノホンはここね。| 。 | 任意の一文字 |
| * | 直前の表現の0回以上のくり返し |
| + | 直前の表現の1回以上のくり返し |
| ? | 直前の表現の0回か、1回のくり返し |
| \\、\。、\*、\+、\?、 | \ 。 * + ? という文字そのもの/td> |
| \d | 数字のクラス |
| \w | 英数字のクラス |
| \s | 空白文字(スペース、タブ、改行)のクラス |
| \D、\W、\S | それぞれの小文字の補文字(以外)クラス |