プロが教えるわが家の防犯対策術!

ファイルのコピー関数が見当たらなかったのですが、どのようにすべきでしょうか?

perlで関数が用意されているのであれば、
system("cp ...");
の様に、システム関数は余り使いたくないと思っています。

A 回答 (2件)

標準モジュールの File::Copy に、copy と move という関数があります。



use File::Copy;
copy("from_file", "to_file");

引数にはファイルパス(ファイル名)だけでなく、ファイルハンドルも指定できます。
詳しくは参考URLをご覧ください。

参考URL:http://search.cpan.org/~nwclark/perl-5.8.4/lib/F …
    • good
    • 0
この回答へのお礼

お礼遅くなり失礼しました。
どうも有難うございます。mkdirやrm(unilnk)などはモジュールを呼ばなくても関数が用意されているのに対してcopyだけはモジュールを呼ばなくてはならないのはちょっと不思議ですが、このモジュールがある事は覚えておきます。

お礼日時:2004/06/15 01:40

 関数というのは用意されてないので、いつもは俺は下記のを使ってます。


 コピペでまんま使えると思います。

sub cp {
local(@tmpfile);
if ( open(IN , "<$_[0]") == undef ) { return; }
if ( open(OUT, ">$_[1]") == undef ) { close(IN); return; }
binmode(IN);
binmode(OUT);
@tmpfile = <IN>;
print OUT @tmpfile;
close(IN);
close(OUT);
}

sub mv {
cp( $_[0], $_[1] );
unlink($_[0]);
}
    • good
    • 0
この回答へのお礼

お礼遅れましてすみませんでした。leaz024さんが教えてくれたように関数が用意されているようなので、今回はこちらを使用しようと思います。
どうも有難うございました。

お礼日時:2004/06/15 01:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!