W perlu 5, użyłbym dowolnej z funkcji Karpi. W perlu 6 wyszukiwanie nie było pomocne, a trace pragma wydrukuje wszystkie stosy, a nie tylko te, które chcę. Mogę używać tylko stary hack rzuca wyjątek, chwytając ją i drukuje go:Czy istnieje kanoniczny sposób drukowania śladu stosu w perlu 6?
try {
X::AdHoc.new(payload => 'Stack').throw;
CATCH { when X::AdHoc { .say; } }
}
Albo jest trochę leniwy:
{
die;
CATCH { default { .say } }
}
Jaki jest właściwy sposób to zrobić?
Co robi swój kod ostateczny wygląd lubić? –
@ ChristopherBottoms To było to. 'Backtrace.new.Str' podaje bieżący ślad stosu jako ciąg znaków. Zaloguj się, zapisz, przetwórz. (Ale gdybyś to analizował, nie nazywałbyś '.Str'.) Uzyskałbyś dostęp do innych metod obiektu" Backtrace ".) – piojo
Oh, okay. Po prostu chcesz sprawdzić ślad stosu w określonym miejscu w kodzie bez konieczności wyrzucania wyjątku. –