Pracuję nad bardzo dużym, bardzo starym "historycznie wyhodowanym" obszarem kodu. W przeszłości często ludzie myśleli: "Och, może potrzebuję tego i tego modułu, więc po prostu to włączam ...", a później ludzie często "buforowali" Dane wewnątrz modułów ("używajcie ThisAndThat" potrzebujących kilku sekund, aby załadować kilkaset MB z DB do RAM, tak, to naprawdę głupi pomysł, nad tym pracujemy), więc często mamy mały moduł wykorzystujący 20 lub 30 modułów, z których 90% całkowicie nieużywane w samym źródle, a ze względu na "buforowanie" w kilku modułach użytkowych moduły zajmują jedną minutę, aby załadować lub nawet więcej, co jest oczywiście nie do zaakceptowania.Znajdź nieużywane "use'd" moduły Perla
Tak, próbuję zrobić to lepiej. W tej chwili, mój sposób patrzenia przez wszystkie moduły, zrozumienie ich jak najwięcej i patrzę na wszystkie moduły w tym i zobaczyć, czy są one potrzebne, czy nie.
Czy istnieje łatwiejszy sposób? To znaczy: Nie istnieją funkcje powracający wszystkie napisy moduł ma jak
...
return grep { defined &{"$module\::$_"} } keys %{"$module\::"}
, więc Aint dowolny prosty sposób, aby zobaczyć, które z nich są eksportowane domyślnie, a które pochodzą z którym i są stosowane w innych modułach?
Prostym przykładem jest Data :: Dumper, która jest zawarta w prawie każdym pliku, nawet, gdy wszystkie debugowania-ostrzeżenia i wydruki i tak dalej nie są w skrypcie. Ale nadal moduł musi załadować Data :: Dumper.
Czy istnieje prosty sposób, aby to sprawdzić?
Dzięki!
To wygląda całkiem nieźle, ale niestety nie mam żadnych wyników. Skopiowałem to dokładnie, ale w jakiś sposób "import" nie jest wywoływany. Próbowałem w nim umrzeć, ale nie było żadnego rezultatu. Każda wskazówka co robię źle? –
umieść kod traceuse w swoim własnym pliku - 'traceuse.pm' (zwróć uwagę na' 1; 'właśnie dodałem na końcu); następnie 'perl -Mtraceuse = Data :: Dumper -e1' powinno dać ci trochę danych wyjściowych. Czy masz inny plik traceuse.pm? – ErikR
i nie zapomnij zainstalować 'Devel :: Symdump', jeśli jeszcze go nie masz. – ErikR