とりあえず[]T::P::Base->equal($src, $dest)[]
メソッドを作りました。ファイルの内容はFile::Compareで比較することにしたけど、条件分けがめどい。
[]@{$dests}[]
が全て存在する。[]@{$dests}[]
は全て[]$src[]
と同じ内容である。[]@{$dests}[]
は全て[]$src[]
と異なる内容である。[]@{$dests}[]
は[]$src[]
と同じものと異なるものが混在する。
[]@{$dests}[]
の一部が存在する。- 存在する
[]@{$dests}[]
は全て[]$src[]
と同じ内容である。 - 存在する
[]@{$dests}[]
は全て[]$src[]
と異なる内容である。 - 存在する
[]@{$dests}[]
は[]$src[]
と同じものと異なるものが混在する。
- 存在する
@{$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のファイルだし、大丈夫だと思う。