私は、20 年以上一貫して機能している自分の個人的な環境を使用してきました。私は約 14 年前に多くの perl スクリプトを組み込み始めました。私は 22 年間、コマンドライン インタープリターの同じツリーを使用してきました (NDOS->4DOS->4NT->TCMD、実際にはすべて同じプログラムです)。
ActiveState windows perl から Strawberry Perl に切り替えました。
何年もの間、perl スクリプトを実行するために必要なのはこれだけでした。
SET .pl=perl
これは、どのプログラムで開くかを指定する方法です。
これは私が簡単にできることです:
c:\>test.pl
Hello, world!
うまくいきました。永遠に。
今日、1 週間前の OS では、すべてが機能しなくなりました。
Perl スクリプトは実行されますが、何もしません。エラーなし。出力なし。何もない。
これが機能する唯一の方法は、スクリプトの前に「perl」を付けることです (この場合、スクリプト名がパラメーターになっているためパスが検索されず、スクリプトのフル パスを入力する必要があります)。
これが私であることのようなものです:
C:\>test.pl
C:\>perl test.pl
Can't open perl script "test.pl": No such file or directory
C:\>perl c:\bat\test.pl
Hello, world!
これは昨日、今日の早い段階でも正常に機能していたことに注意してください。何がこれを変更し、何が壊れたのかはわかりません。かなり長い間調べたところ、似ているが同一ではない問題が見つかりました-修正は役に立ちませんでした.
私は大量のスクリプトを持っています。それらのすべての前に世界の「perl」を挿入し、フルパスを修飾する必要があるのは本当に嫌です!
現実的には、おそらく、パラメーター ファイル名を完全修飾パスに変換し、明示的に perl を呼び出す perl.bat ラッパーを作成する必要があります。
私は本当にそれをしたくありません。それが応急処置です。何が悪いのか、アドレスが何かを理解し、解決したい。
Windows 7が嫌いになってきました...