File::Copy - ファイルの移動とコピー
File::Copyモジュールを使用すると、ファイルを移動したり、コピーしたりすることができます。
# モジュールの読み込みと関数のインポート use File::Copy qw/copy move/;
copy関数でファイルをコピー、move関数でファイルを移動することができます。rename関数というファイルを移動する標準関数がありますが、ファイルシステムを隔てた移動に対応していません。ファイルを移動する場合はFile::Copyのmoveを使用するのがよいでしょう。またmoveはディレクトリを移動するときも利用することができます。
# ファイルのコピー copy($from, $to); # ファイルの移動 move($from, $to)
ファイルをコピーするサンプルです。ファイルのコピーに失敗(※1)したときのためにエラー処理を行います。エラーメッセージにはOSのエラーメッセージ「$!」を含めるようにします。
# ファイルのコピー my $from = 'xxx'; my $to = 'yyy'; copy($from, $to) or die "Can't copy \"$from\" to \"$to\": $!";
ファイルを移動するサンプルです。ファイルの移動に失敗したときのためにエラー処理を行います。エラーメッセージにはOSのエラーメッセージ「$!」を含めるようにします。
# ファイルの移動 my $from = 'xxx'; my $to = 'yyy'; move($from, $to) or die "Can't move \"$from\" to \"$to\": $!";
ファイルが存在しなかった場合や、送り先のディレクトリにパーミッションの書き込み権限がない場合などにファイルコピーは失敗します。