Geçerli kaynak satırı numarasını Perl'de almak mümkün mü? C++ 'da eşdeğer __LINE__
'dur.Kaynak hattı numarasını Perl'de nasıl yazdırabilirim?
cevap
print "File: ", __FILE__, " Line: ", __LINE__, "\n";
veya
warn("foo");
uyarısı STDERR üzerine yazdıracaktır. – mat
hazır __SATIR__ perldata man page arasında Special Literals bölümünde anlatılmaktadır.
perl -e'warn ("foo")' -e hattı 1.
de
foo ile yakaladım var
Not yeni bir satırdan ile biterse o olmaz baskı satır numarası
perl -e'warn ("fon \ n")'
foo
Bu "die -f perldoc" belgelenen, ancak bölümün referans ölmek "uyarmak -f perldoc" in kaçırmak belki kolay ...
Bu senin çizgi yazdırır ve ayrıca edilir "yığın"
while(my @where=caller($frame++)) { print "$frame:" . join(",",@where) . "\n"; }
"Carp kullanmak" ve çeşitli rutinleri ile oynamak ve aynı zamanda bir olsun (arama programlarından hatların listesi (komut/modüller/vs) şu anda bulunduğunuz yerin yol açtığını) stack - cnd tarafından önerilen "arayan" yönteminden daha iyi veya daha kötü olup olmadığından emin değil. Kod ve diğer bilgileri hata ayıklamada bulduğum ama bir hata ayıklama ortamı dışında çok az değer gördüğümü göstermek için C ve Perl'deki HAT ve DOSYA değişkenlerini (ve muhtemelen diğer benzer değişkenleri) kullandım.
- 1. Eski perlde 'experimental' uyarısı yok
- 2. Spacemacs melez hattı numaraları
- 3. wchar_t değerlerini konsola nasıl yazdırabilirim?
- 4. Knitr kullanırken konsola nasıl yazdırabilirim?
- 5. Boru hattı nasıl taşınır?
- 6. C programındaki yığın içeriğini nasıl yazdırabilirim?
- 7. Bir sembolün tanımını Şemada değerlendirmeden nasıl yazdırabilirim?
- 8. C++ Bir .txt dosyasını nasıl yazdırabilirim?
- 9. SciPy Küçült: Sonlu farkın değerini nasıl yazdırabilirim?
- 10. Tam yığın izini GlassFish ile nasıl yazdırabilirim?
- 11. ANSI renklendirme ring.middleware.logger loglarımı nasıl yazdırabilirim?
- 12. Bir şeyi nasıl yazdırabilirim (geçici olarak)?
- 13. İngilizce olmayan karakterleri terminale nasıl yazdırabilirim?
- 14. Paralel boru hattı nasıl yapılır?
- 15. Karınca yapısı tarafından oluşturulan bir kavanozun hata yığın izinde kaynak satır numarasını nasıl alabilirim?
- 16. Win32 üzerinde Perl'de bir unix newline'ı nasıl yazdırabilirim?
- 17. Bir sklearn Boru Hattı içinde birleştiren birden fazla boru hattı?
- 18. Python kaplumbağası, hattı sil
- 19. git tam indeks hattı
- 20. Android Şekli Hattı
- 21. TextArea'da Ara Verme Hattı
- 22. eklenti hattı zaten
- 23. Boru Hattı DSL (Groovy)
- 24. Başlangıç kimlik numarasını değiştir
- 25. Yıl numarasını PHP ile nasıl edinebilirim?
- 26. Telefon numarasını PHP kullanarak nasıl doğrularsınız?
- 27. iPhone'un seri numarasını nasıl programlı olarak alıyorsunuz?
- 28. Bash betikindeki değişken argüman numarasını nasıl kullanırım?
- 29. Float numarasını saat dilimine nasıl dönüştürebilirim?
- 30. Android'de bir telefonun smsc numarasını nasıl edinilir?
Şunu merak ediyorum: neden buna ihtiyacınız var? –
Çok uzun bir süreçte ilerlemeyi hızlı bir şekilde takip etmek ve sipariş noktalarının işlerin bitip tükendiğini kontrol etmek için kullandım, örneğin hata ayıklayıcısını kullanmadan –
@ LeonTimmermans: Bir Perl ile ilgili eski yorumunuza yanıt veriyorum programcı _ _FILE_ _ ve _ _ LINE _ _ isteyebilir. Temel olarak, bir C/C++ programlayıcısının bunları neden isteyebileceğinin aynı sebepleri. Örneğin. Bugün bir testi tekrar test ettim böylece Test :: Differences :: eq_or_diff bir altprogramda çağrıldı. Rapor edilen satır sayısı, alt rutinin nereden alındığı değil, alt programdaydı. Test adına __ LINE __ eklenmesi, başarısız testi bulmama yardımcı olur. Şimdi Perl5'te bir makro CODE_LOCATION yazabilirsem. –