• ベストアンサー

perlにおけるファイルコピー方法

ファイルのコピー関数が見当たらなかったのですが、どのようにすべきでしょうか? perlで関数が用意されているのであれば、 system("cp ..."); の様に、システム関数は余り使いたくないと思っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.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/File/Copy.pm
tk_1980024
質問者

お礼

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

その他の回答 (1)

noname#25358
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]); }

tk_1980024
質問者

お礼

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

関連するQ&A

専門家に質問してみよう