Ich habe dieses seltsame Problem mit Perl. Ich versuche, ein externes Programm innerhalb meines Perl-Skripts auszuführen, und dieses externe Programm nimmt String + Wildcard als Parameter. Mein Perl-Programm sieht wie folgt ausWarum funktioniert ein * in meiner in Perl geöffneten Pipe nicht unter Windows?
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
Aus irgendeinem seltsamen Grunde läuft diesen Skript Perl (unter Windows) Aufruf open
Funktion mit Fehlern endet:
'sqlselect' is not recognized as an internal or external command
Ich vermuten, dass sie etwas mit dem zu tun *
in meinem Befehlsfolge und daher nahm ich es und jetzt ist mein Kommando-String sieht wie folgt aus
my $cmd_to_run = 'find-something-in-somedb myname|'
nun, wenn ich meine Perl-Skript ausführen es wor ks vollkommen in Ordnung. Problem tritt nur auf, wenn Platzhalterzeichen vorhanden sind.
einige Punkte zu beachten:
lief ich den gleichen Befehl mit Wildcard-Zeichen in der gleichen Befehlszeile (wo ich das Perl-Skript bin ausgeführt wird) und es funktioniert völlig in Ordnung ..
Gleicher Befehl funktioniert, wenn ich es in C mit _open Funktion in Windows programmieren.
Problem scheint nur zu sein, wenn Platzhalter * vorhanden ist, zumindest das ist, was ich No
bin zu raten, ich habe diese ..
in Unix nicht versucht
Irgendwelche Hinweise? ??
EDIT: Ich habe festgestellt, dass dies etwas mit ENV zu tun hat. Das Programm, das ich ausführen möchte, verwendet "sqlselect" nur, wenn "*" Platzhalter in Suchzeichenfolge vorhanden ist ... Sowohl find-something-in-somedb als auch sqlselect sind am gleichen Speicherort vorhanden. In diesem Fall kann Perl "find-in-db" und nicht "sqlselect" finden
Tut mir leid, ich merke, dass das ursprüngliche Problem jetzt etwas anderes ist. Etwas mit "ENV" zu tun und nicht mit Wildcard *
Ein weiterer verwirrender Downvote. Hmmm ... –
Ich werde upvote, um es auszugleichen, aber in der Tat ... downvote und keinen Kommentar zu erklären, warum? – ephemient
@Sinan - Ich hatte einen verwirrenden Downvote ohne Kommentar. –