2008-05-01から1ヶ月間の記事一覧

カレントディレクトリ名を取得する

Perl › ファイル操作 › here カレントディレクトリ名を取得するにはCwdモジュールのgetcwd関数を使います。 use Cwd 'getcwd'; my $cur_dir = getcwd; サンプル カレントディレクトリ名を取得するサンプルです。 use strict; use warnings; use Cwd 'getcwd'…

File::Find - サブディレクトリを再帰的に処理する

Perl › モジュール › here File::Findを使用すると、再帰的にすべてのファイルを処理することができます。 use File::Find; find(\&process, $top_dir); sub process{ # 行いたい処理 } File::Find は、chdir で、ディレクトリを変更しながら、すべてのファ…

glob関数 - ディレクトリに含まれるファイル一覧を取得

Perl › 関数 › here glob関数を使用すると、ファイル一覧を取得することができます。 my @all_files = glob "*"; ファイル一覧を取得するには、glob 演算子を使います。対象は、カレントディレクトリのファイル(ディレクトリを含む)になります。別のディレク…

chdir関数 - カレントディレクトリを変更する

Perl › 関数 › here カレントディレクトリを変更するにはchdir関数を使用します。Perlのプログラムの中でカレントディレクトリが変更されるだけでシェルやコマンドプロンプトのカレントディレクトリは影響を受けません。 chdir $dir; カレントディレクトリを…

階層を持つディレクトリを一度に削除する

Perl › ファイル操作 › here 階層を持つディレクトリを一度に削除するにはFile::Pathモジュールのrmtreeを使用します。rmtree の戻り値は、削除することのできた、ファイル数です。 use File::Path 'rmtree'; rmtree $dir; サンプル 階層を持つディレクトリ…

rmdir関数 - ディレクトリを削除する

Perl › 関数 › here rmdir関数を使用するとディレクトリを削除するにはを使用します。ファイルが中に含まれない空のディレクトリのみ削除できます。成功すると真が、失敗すると偽が返ります。また失敗すると$!にエラー内容が格納されます。 # ディレクトリを…

複数階層のディレクトリを作成する

Perl › ファイル操作 › here 複数階層のディレクトリを作成するにはFile::Pathモジュールのmkpath関数を使用します。 use File::Path 'mkpath'; mkpath $dir_multi_level; 複数階層のディレクトリを作成するには、File::Path モジュールのmkpath関数を使いま…

mkdir関数 - ディレクトリを作成する

Perl › 関数 › here mkdir関数を使用するとディレクトリを作成することができます。成功すると真が、失敗すると偽が返ります。戻り値は必ずチェックしましょう。失敗すると、エラーの内容が $! に設定されます。 $ret = mkdir $dir サンプル mkdir関数を使っ…

ファイルを移動する ファイル名を変更する

Perl › ファイル操作 › here ファイルを移動するにはFile::Copyモジュールのmove関数を使用します。成功すれば真が、失敗すれば偽が返ります。またmove関数が失敗すれば、$! に、エラーの内容が、格納されます。 use File::Copy 'move'; move($file_from, $f…

ファイルをコピーする

Perl › ファイル操作 › here ファイルをコピーするにはFile::Copyモジュールのcopy関数を使用します。成功すれば真が、失敗すれば偽が返ります。またcopy関数が失敗すれば、$!にエラーの内容が、格納されます。 use File::Copy 'copy'; copy $file, $copy_na…

unlink関数 - ファイルを削除する

Perl › 関数 › here unlink関数を使用すると、ファイルを削除することができます。戻り値には、削除したファイルの個数が返ってきます。 unlink $file; サンプル ファイルを削除するサンプルです。 use strict; use warnings; use Fcntl; # ファイルを削除す…

ファイルを作成する

Perl › ファイル操作 › here ファイルを作成する。書き込みモードでファイルをオープンします。Perl には、ファイルを作成するためだけの、関数がありません。ファイルを作成するには、open関数の書き込みモードを使います。 open my $fh, ">", $file; サン…

ファイル名から拡張子を取り出す

Perl › ファイル操作 › here ファイル名から、拡張子を取り出すにはFile::Basenameモジュールのfileparseの第二引数で拡張子を指定します。戻り値の三つ目で、拡張子が得られます。 use File::Basename; my ($base_name, $dir, $suffix) = fileparse($file_t…

ファイル名からディレクトリ名とベース名を取り出す

Perl › ファイル操作 › here ファイル名から、ディレクトリ名とベース名を取り出すにはFile::Basenameモジュールのfileparseメソッドを使用します。 use File::Basename 'fileparse'; my ($base_name, $dir) = fileparse $file; File::Basename モジュールの…

OSに依存しないファイル名の作成

Perl › ファイル操作 › here OSに依存しないファイル名を作成するにはFile::Specモジュールのcatfileメソッドを使用します。 use File::Spec; my $file_name = File::Spec->catfile('t', 'test1.t'); ファイル名の規則は、OSによって異なります。/ や \ を使…

ディレクトリの上の階層を表す表現 ..

Perl › ファイル操作 › here ディレクトリは、自分自身を表す特別なディレクトリ名( . )と、1階層上のディレクトリを表す特別なディレクトリ名( .. )を、持っています。 # 自分自身のディレクトリを表す特別なディレクトリ名 . # 1階層上のディレクトリを表…

絶対パスと相対パス

Perl › ファイル操作 › here プログラムの中で、ファイル名を表現する方法に、絶対パスと相対パスという2通りの表現の仕方があります。絶対パスとは、ファイル名をルートから省略せずに記述したファイル名のことです。相対パスとは、カレントディレクトリか…

「_」 - ファイルテストの結果の再利用

Perl › 演算子 › here 「_」を使用するとファイルテスト演算子、あるいはstat関数の結果を再利用することができます。 if( -s $file > $size && -A _ > $from_last_access ){ ... } -s $file で、サイズを取得しますが、実は背後では、stat を呼んでいます。…

stat関数 - ファイルの詳細な情報を取得する

Perl › 関数 › here ファイルの詳細な情報を取得するにはstat関数を使用します。 my @infos = stat $file; 以下がstatで取得できる情報です。 0 ファイルシステムのデバイス番号 1 iノード番号 2 ファイルモード 3 このファイルへのハードリンク数 4 ファイ…