ファイルの比較

とりあえず[]T::P::Base->equal($src, $dest)[]メソッドを作りました。ファイルの内容はFile::Compareで比較することにしたけど、条件分けがめどい

  1. []@{$dests}[]が全て存在する。
    1. []@{$dests}[]は全て[]$src[]と同じ内容である。
    2. []@{$dests}[]は全て[]$src[]と異なる内容である。
    3. []@{$dests}[][]$src[]と同じものと異なるものが混在する。
  2. []@{$dests}[]の一部が存在する。
    1. 存在する[]@{$dests}[]は全て[]$src[]と同じ内容である。
    2. 存在する[]@{$dests}[]は全て[]$src[]と異なる内容である。
    3. 存在する[]@{$dests}[][]$src[]と同じものと異なるものが混在する。
  3. @{$dests}はどれも存在しない。

あ、[]@{$dests}[]はコピー先のファイル名、[]$src[]はコピー元のファイル名ね。全部で7種類。これだけの場合に分割して考えないといけない。めどい

追記 [22:37]

1.2, 1.3, 2.2, 2.3はサポートしないことにしました。ぶっちゃけると、めどい。その場合警告メッセージを表示します。こういう場合は手動で扱ったほうが確実だし。ファイル名が被らないようにhoge.2.jpgとかやってもいいんだけど、とりあえず今は書きません。気が向いたら書くかも。とりあえず現在は1.1, 2.1, 3のみ動作します。

grepとかmap関数って扱いを覚えるまではよくわからなかったから、foreachで似たようなことをやったりしてたけど、覚えるとだいぶ便利な関数だね。どっかでベンチマークとって、mapは遅いっていう結果が出てた気がするけど、そんなたいした量を扱うわけでもないし、結構気軽に使ってます。

make mailで必要なファイルをアーカイブしてGmailに送信。気軽に扱えてちょっと便利。まあ、あんまり大きいファイルを短時間で大量に送ったらアカウントbanされるかもだけど、数KBのファイルだし、大丈夫だと思う。