Czy można uzyskać bieżący numer linii źródłowej w Perlu? Odpowiednikiem w C++ jest __LINE__
.Jak mogę wydrukować numer wiersza źródłowego w Perlu?
Odpowiedz
print "File: ", __FILE__, " Line: ", __LINE__, "\n";
lub
warn("foo");
ostrzeżenie zostanie wydrukowane na STDERR. – mat
__LINE__ dosłownym jest opisana w części Special Literals z perldata man page.
Uwaga istnieje haczyka z
perl -e'warn ("foo")”
foo na -e linii 1.
jeśli kończy się znakiem nowej linii to nie będzie druku numer linii
Perl -e'warn ("foo \ n")”
bla
Jest to udokumentowane w "perldoc -f die", ale być może łatwo go przeoczyć w sekcji "perldoc -f warn" w odniesieniu do umrzeć ...
To wypisuje linię, w której jesteś, a także w „stos” (lista linii z programów telefonicznych (skrypty/moduły/etc), które prowadzą do miejsca, jesteś teraz)
while(my @where=caller($frame++)) { print "$frame:" . join(",",@where) . "\n"; }
„Użyj Carp” i bawić się z różnych procedur i można również uzyskać stack - nie wiem, czy ta metoda jest lepsza czy gorsza od metody "caller" sugerowanej przez cnd. Użyłem zmiennych LINE i FILE (i prawdopodobnie innych podobnych zmiennych) w C i Perlu, aby pokazać, gdzie dostałem kod i inne informacje podczas debugowania, ale widziałem małą wartość poza środowiskiem debugowania.
- 1. Jak mogę wydrukować do zmiennej zamiast do pliku, w Perlu?
- 2. Jak mogę wydrukować elementy listy oddzielone wierszami w Perlu?
- 3. Jak wydrukować wszystkie wartości tablicy w Perlu
- 4. Bash: Znajdź numer wiersza wywołania funkcji z pliku źródłowego
- 5. Jak wydrukować numer linii z svn winy?
- 6. Jak wydrukować numer w zespole ARM?
- 7. Numer wiersza w BigQuery?
- 8. Historia git wiersza źródłowego
- 9. Jak mogę uzyskać numer bieżącego wiersza w edytorze netbeans?
- 10. Jak znaleźć numer wiersza rekordu?
- 11. Siła pyton wydrukować cały numer
- 12. numer wersji git w dokumentacji kodu źródłowego
- 13. Jak uzyskać numer wiersza błędu w Powershell
- 14. Jak mogę rekurencyjnie odczytać katalogi w Perlu?
- 15. Jak mogę utworzyć plik binarny w Perlu?
- 16. Jak mogę wydrukować pojedynczy znak nowej linii w Perlu na Win32?
- 17. Jak wydrukować wiersze kodu źródłowego w logu Pythona
- 18. Numer wiersza OrientDB
- 19. Jak przyspieszyć numer wiersza w Oracle?
- 20. Jak wydrukować numer wiersza pliku, z którym pracuję za pomocą ARGV?
- 21. Numer wiersza datagridu WPF
- 22. Jak ładnie wydrukować XML z wiersza poleceń?
- 23. Jak uzyskać numer wiersza przy użyciu skanera
- 24. Komunikat ostrzegawczy Numer wiersza R
- 25. Jak mogę wydrukować tylko co trzeci indeks w Perlu lub Pythonie?
- 26. Jak wydrukować nazwę metody i numer linii w szybkim
- 27. Jak dodać nazwę pliku źródłowego do każdego wiersza w Sparku?
- 28. Jak podzielić plik na numer wiersza
- 29. Jak mogę wygenerować zakres adresów IP w Perlu?
- 30. Jak mogę wydrukować wiadomość w Makefile?
Zastanawiam się jednak: dlaczego miałbyś tego potrzebować? –
Użyłem go do szybkiego śledzenia postępu przez bardzo długi proces i sprawdzenia kolejności, w jakiej wykonywane są operacje, takich jak punkty przerwania, ale bez korzystania z debugera: –
@LeonTimmermans: Odpowiadam na twój bardzo stary komentarz o tym, dlaczego Perl programista może chcieć _ _FILE_ _ i _ _ LINE _ _. Zasadniczo z tych samych powodów, dla których programista C/C++ może ich chcieć. Na przykład. dzisiaj refaktoryzowałem test, aby w podprocedurze wywołano test :: Differences :: eq_or_diff. Zgłoszony numer linii był w podprocedurze, a nie w miejscu wywołania podprogramu. Dodanie __ LINE __ do nazwy testu pomaga mi znaleźć test na awarię. Teraz, gdybym mógł napisać makro CODE_LOCATION w Perl5. –