質問: perl -p -i.bak -e "!a!a!g" * をコマンドラインで実行すると ファイルをオープンできないとのエラーが出ます。 ちなみに perl -p -i.bak -e "!a!a!g" x.txt ならばokです。 ディレクトリ内のすべてのフィルに適用したいのですがどうしたらいいでしょうか? windowsxp に最新版のperlを入れて実行しています。
回答: マイクロソフト系のosはワイルドカード展開をアプリケーション側で行うからです。 perl に対して "*" というファイル名がそのまま渡ってしまうため、それをオープンできずにエラーになってしまうのです。 unix 系のosは、ほとんどのケースではシェル側で展開するんですよね。たしか。