当たり前なんだけど cp vs File::Copy

| コメント(0) | トラックバック(0)



当たり前なんだけど、File::Copyを使うよりcpを使ったほうが全然仕事が速い。ってことで、いつもやってるヤツでcpがどこにあるかをprobe:



my @cmds = qw(cp); # 他にrmとかも欲しければ・・・
my @paths = qw(/usr/local/bin /usr/bin /bin);
my %commands;

foreach my $cmd (@cmds) {
foreach my $path (@paths) {
my $fullpath = File::Spec->catfile($path, $cmd);
if (-x $fullpath) {
$commands{$cmd} = $fullpath;
last;
}
}
}


これでやっとくと、/bin/cpだろうが/usr/bin/cpだろうがOK。もちろん、トロイの木馬だったら目も当てられませんが・・・。で、こいつを使って、



sub copy_file
{
my($from, $to) = @_;

my $cmd = $commands{cp};
if ($cmd) {
system($cmd, $from, $to);
} else {
require File::Copy;
File::Copy::copy($from, $to);
}
}


で一丁上がり。


Author

Daisuke Maki (a.k.a lestrrat): Perl hacker, Director of Japan Perl Association, YAPC::Asia Tokyo Organizer (2009-2012), Fluent in Japanese, English. Ex-Brazilian (sorta)

#perl #c #ruby #java #mysql #english #japanese #opensource #stf #cooking #scotch #cigar


このエントリーをはてなブックマ
ークに追加

翔泳社よりモダンPerl入門(2010)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ