- ベストアンサー
perlにおけるファイルコピー方法
ファイルのコピー関数が見当たらなかったのですが、どのようにすべきでしょうか? perlで関数が用意されているのであれば、 system("cp ..."); の様に、システム関数は余り使いたくないと思っています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
標準モジュールの File::Copy に、copy と move という関数があります。 use File::Copy; copy("from_file", "to_file"); 引数にはファイルパス(ファイル名)だけでなく、ファイルハンドルも指定できます。 詳しくは参考URLをご覧ください。
その他の回答 (1)
noname#25358
回答No.1
関数というのは用意されてないので、いつもは俺は下記のを使ってます。 コピペでまんま使えると思います。 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]); }
質問者
お礼
お礼遅れましてすみませんでした。leaz024さんが教えてくれたように関数が用意されているようなので、今回はこちらを使用しようと思います。 どうも有難うございました。
お礼
お礼遅くなり失礼しました。 どうも有難うございます。mkdirやrm(unilnk)などはモジュールを呼ばなくても関数が用意されているのに対してcopyだけはモジュールを呼ばなくてはならないのはちょっと不思議ですが、このモジュールがある事は覚えておきます。