私はPerlでこの奇妙な問題を抱えています。私はPerlスクリプトの内部から外部プログラムを実行しようとしています。この外部プログラムはパラメータとしてstring + wildcardを取ります。私はその何かがでやっていることを推測Perlで私のパイプの*がWindowsで動作しないのはなぜですか?
'sqlselect' is not recognized as an internal or external command
:私のPerlプログラムはエラーで終わるopen
関数の呼び出し(Windowsで)このPerlスクリプトを実行している、いくつかの奇妙な理由でこの
my $cmd_to_run = 'find-something-in-somedb myname* |'
open(procHandle, $cmd_to_run); # I am using open because I want to
# parse the output using pipes
のように見えます*
私のコマンド文字列に存在するので、私はそれを取り出して、今、私のコマンド文字列は、私は私のPerlスクリプトを実行すると、それはWOR今、この
my $cmd_to_run = 'find-something-in-somedb myname|'
のように見えます完璧に良い。ワイルドカード文字が存在する場合にのみ問題が発生します。
注意すべきいくつかのポイント:
私は(私はこのPerlスクリプトを実行しています)同じCMDプロンプトで、ワイルドカード文字と同じコマンドを実行し、それは完全に正常に動作します。..
同じコマンドは、Windowsで_open関数を使用してC言語でプログラムするときに機能します。
問題はありません、私は任意の手掛かりが
.. Unixのでこれを試していない?少なくとも、それは私が
を推測しています何、ワイルドカード*が存在する場合にのみのようですか??
EDIT:これはENVと関係があることがわかりました。私が実行しようとしているプログラムは、 "*"ワイルドカードが検索文字列に存在する場合にのみ "sqlselect"を使用します。 find-something-in-somedbとsqlselectは同じ場所にあります。この場合、perlは "sqlselect"ではなく "find-in-db"を見つけることができます
申し訳ありません私は元の問題が今何か他のものになっていることを認識しています... "ENV"とは何かワイルドカード*
別の困惑するdownvote。うーん... –
私はそれをバランスをとるためにupvoteだろうが、確かに... downvoteと理由を説明するコメントはありません? – ephemient
@Sinan - 私はあまりにもコメントなしで困惑するdownvoteを持っていた。 –