ファイル消しちゃった
しかも2回目。フォルダの中のファイルに対してjpegtranしてファイルサイズ削るためのラッパーなんだけど。また書き直すのもう嫌だから、ここにコード貼り付けておきます。絶対またやらかしそうだしね。
use strict; use warnings; use 5.11.2; my $color_reg = qr/^(01)\./; opendir my $d, '.' or die $!; while (readdir $d) { next unless /\.jpe?g$/i; my $o = "o.$_"; my $op = "op.$_"; given ($_) { when ($color_reg) { say "$_ [color]"; system 'jpegtran', '-copy' => 'none', '-optimize', $_, $o; system 'jpegtran', '-copy' => 'none', '-optimize', '-progressive', $_, $op; } default { say "$_ [monochrome]"; system 'jpegtran', '-copy' => 'none', '-grayscale', '-optimize', $_, $o; system 'jpegtran', '-copy' => 'none', '-grayscale', '-optimize', '-progressive', $_, $op; } } my @f = map {$_->[0]} sort {$a->[1] <=> $b->[1]} map {[$_, -s $_]} $_, $o, $op; unlink $_ for @f[1, 2]; rename $f[0], $_; } closedir $d;
5.11.2以降でwhile (readdir DIRHANDLE) { ... }
なんて書けるようになってたのね。ちょっと便利かもしれない。