Ben yetkili onaylamak veya ben Perl script shebang hattında -CSDA
seçeneği hakkında bilmek ne düşündüğünü düzeltmek için birini arıyorum.Sadece shebang hattında ne -CSDA belirtildi?
-CSDA
belgelenmesi için perldoc perlrun bakınız. Kısaca
- S: girdisi hem de çıktısı için varsayılan PerlIO tabaka
- A akışları UTF-8:
STDIN
,STDOUT
veSTDERR
UTF-8- D olduğu varsayılır @ARGV elementler dizeleri kodlanmış bekleniyor UTF-8
-CSDA
için herhangi bir etkiye sahip olmak için, komut satırındaperl -CSDA script.pl
'daki gibi belirtilmelidir.önce standart akışları zaten açılmış ve
@ARGV
zaten-CSDA
zaten yanı komut satırında belirtilen sürece karşılaşıldı zaman tarafından doldurulan olurdu çünkü sessizce başarısız olur shebang hattında 5.10,-CSDA
için. Sadece shebang satırında görüntülenir 5.10 sonra,
-CSDA
çünkü bu sorun croak içinperl
neden olur.ile çalışmak için kullanılan
-CSDA
ile bir komut dosyasıperl
s öncesi 5.10 komut satırında bu seçenekler (ve seçenekleri ile çağrılan asla çünkü üzerinde sadece belirtilmişse-CSDA
, shebang hattından kaldırıldı olmalı Shebang hattı, hiçbir şey yapmadı.
Yukarıdaki varsayımlarımın yanlış olduğu konusunda katı bir geri bildirim almak isterim.
+1. Son öğe için, '/ usr/bin/perl' 'nin tercüman olmadığı sistemlerde,' perl '' in hangi versiyonunu çağırdığına karar veren bir programdır (örneğin, 5.8' ve 5.10’un OS X sistemlerinde olduğu gibi) co-var), shebang satırında -CSDA', sonunda çağrıldığında, perl’in çoğalmasına neden olur. –
Bu doğruysa, sarmalayıcı komut dosyasında bir hata olur. Ama bir Mac üzerinde kontrol ettiğimde, sorunun aslında 5.10.0'ın (OS X 10.6.6 ile birlikte geliyor) -C'nin her zaman izin vermediğini, 5.10.1'in (Linux makinemde sahip olduğum şey) olduğunu gördüm. Belirtilen bayraklar zaten aktif ise izin verir. Shebang üzerinde perl5.8.9 belirtilmesi doğru -CSDA onur duyar. – Anomie
Açıklama için teşekkür ederiz. Çok takdir edildi. –