Qualcuno può spiegare la differenza tra la chiamata di uno script perl tramite l'associazione di file e la chiamata dello stesso script esplicitamente tramite perl.exe
?Perl su Windows, associazioni di file e reindirizzamento I/O
Apparentemente il reindirizzamento I/O non funziona molto bene quando lo script viene chiamato tramite associazione file e mi piacerebbe davvero sapere perché.
E.g. dai uno sguardo allo Activestate FAQ for Perl on Windows. L'esempio cat file
funziona perfettamente fintanto che lo script non riceve il suo input tramite reindirizzamento. Così
cat file.txt
opere come previsto, ma
whoami | cat.pl
non lo fa. Non è necessaria solo l'estensione .pl
, ma a quanto pare l'output di whoami
non viene reindirizzato nello script. Lo script viene eseguito (che può essere verificato modificando lo script cat.pl
di esempio), ma per qualche motivo non riceve l'input di whoami
come input.
Tuttavia, se io chiamo lo script come questo:
whoami | perl cat.pl
tutto funziona come previsto.
Quindi apparentemente c'è una differenza importante tra l'esecuzione dello script tramite associazione file e la chiamata esplicita perl.exe
con lo script.
Le FAQ menzionano il problema e sottolinea che l'utilizzo di pl2bat
per generare una copertina di file bat per lo script risolve il problema, ma non capisco perché sia necessario.
Per favore mi illumini.
Che cosa intendi esattamente quando dici "associazione file"? – innaM
Per associazione file intendo che l'estensione .pl è associata con perl.exe. Si prega di consultare le domande frequenti collegate in quanto contiene i dettagli. –