Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発
  1. Perl
  2. ファイル操作
  3. here

ファイルをコピーする

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

use File::Copy 'copy';
copy $file, $copy_name;

ファイルをディレクトリの中にコピーすることもできます。

use File::Copy 'copy';
copy $file, $dir;

サンプル

ファイルをコピーするサンプルです。

use strict;
use warnings;
use Fcntl;
use File::Copy 'copy';

# ファイルをコピーする。
my $file = "sample_20080521_$$.txt";
my $dir = "dir_20080521_$$";

# 準備 ファイルとディレクトリの作成
sysopen( my $fh, $file, O_WRONLY | O_CREAT | O_EXCL )
  or die "$file を作成することができません。: $!";
close $fh;
print "準備: '$file'が作成されました。\n";

mkdir $dir
  or die "$dir を作成することができません。 : $!";
print "準備: '$dir'が作成されました。\n\n";

print "1. ファイルをコピーする。\n";
my $copy_name = "$file.copy";
if (copy $file, $copy_name) {
  print "$file は、 $copy_name にコピーされました。\n\n";
}
else {
  warn "$file を $copy_name にコピーできません。$!";
}

print "2. ファイルをディレクトリにコピーする。\n";
if (copy $file, $dir) {
  print "$file は、 $dir にコピーされました。\n\n";
}
else {
  warn "$file を $dir にコピーできません。: $!";
}

(参考)sysopen関数Fcntl