use encoding 'shiftjis'; の不可解な振る舞い
Win98SE で、ActivePerl 5.8.6 Build 811
を使っています。
以下は、ある条件に一致するファイル名を、指定パターンと連番のファイル名にリネームするスクリプトです。
print "Old pattern: ";
$opat = <STDIN>;
chop($opat);
print "New pattern: ";
$npat = <STDIN>;
chop($npat);
print "Starting #: ";
$i = <STDIN>;
chop($i);
@flist = glob("$opat");
foreach $old (@flist) {
  $new = sprintf("$npat", $i);
  print "Renaming $old --> $new\n";
  rename($old, $new);
  ++$i;
}
print "Done.\n";
このスクリプトは正しく動作しているのですが、これの先頭に、
  use encoding 'shiftjis';
を入れただけで、動かなくなってしまいます。
(rename にエラーチェックが入っていませんが、エラーチェックを追加すると、$old
が No such file or directory
となってしまいます。)
これは、なぜでしょうか?
ちなみに、perl -d
で調べようにも、-d
付きでこのスクリプトを呼んだだけで
Perl がクラッシュしてしまい、お手上げの状態です。
原因がおわかりの方、よろしくお願いします。
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735