{"package":"PPI","ecosystem":"cpan","latest_version":"1.291","description":"Parse, Analyze and Manipulate Perl (without perl)","license":"perl_5","license_risk":"unknown","commercial_use_notes":"verify manually — license not parseable / not declared.","homepage":"https://github.com/Perl-Critic/PPI","repository":"https://github.com/Perl-Critic/PPI","downloads_weekly":0,"health":{"score":61,"risk":"moderate","breakdown":{"maintenance":25,"popularity":0,"security":25,"maturity":9,"community":2},"deprecated":false,"max_score":100},"vulnerabilities":{"count":0,"critical":0,"high":0,"medium":0,"low":0,"details":[]},"versions":{"latest":"1.291","total_count":1,"recent":["1.291"]},"metadata":{"deprecated":false,"deprecated_message":null,"maintainers_count":1,"first_published":null,"last_published":"2026-04-25T21:08:44","dependencies_count":48,"dependencies":["File::Spec::Functions","Class::Inspector","warnings","Test::Object","File::Spec","Encode","File::Temp","utf8","parent","Test::SubCalls","File::Copy","lib","B","ExtUtils::MakeMaker","Test::NoWarnings","Test::More","File::Path","Exporter","Task::Weaken","Safe::Isa","Clone","YAML::PP","overload","List::Util","Digest::MD5","if","Params::Util","version","Carp","Storable","strict","constant","Scalar::Util","Test::DependentModules","strictures","Devel::Confess","MetaCPAN::Client","Test::Kwalitee","Test2::V0","Test::Portability::Files","IPC::Open3","Test::Pod::No404s","Test::Mojibake","Test::CPAN::Meta","IO::All","IO::Handle","Test::Pod","Test::ClassAPI"]},"github_stats":null,"bundle":null,"typescript":null,"known_issues":{"bugs_count":0,"bugs_severity":{},"status_breakdown":{},"link":null,"scope":"none"},"historical_compromise":null,"recommendation":{"action":"use_with_caution","issues":["Moderate health score (61/100) — verify manually"],"use_version":"1.291","version_hint":null,"summary":"PPI@1.291 low health (61/100) — consider alternatives"},"version_scoped":null,"_meta":{"endpoint":"check","tier":"full","philosophy":"DepScope is free. Use the cheapest endpoint that answers your real question.","cheaper_alternatives":[{"endpoint":"/api/exists/cpan/PPI%3A%3AToken%3A%3AOperator","tokens_estimated":12,"use_when":"you only need to know if the package exists (hallucination guard)"},{"endpoint":"/api/health/cpan/PPI%3A%3AToken%3A%3AOperator","tokens_estimated":80,"use_when":"you only need a 0-100 score for go/no-go (>=70 = safe)"},{"endpoint":"/api/prompt/cpan/PPI%3A%3AToken%3A%3AOperator","tokens_estimated":280,"use_when":"you want a plain-text LLM-friendly brief instead of JSON"},{"endpoint":"POST /api/check_bulk","tokens_estimated":60,"use_when":"you have 5+ packages to check; sends one round-trip instead of N"}],"docs":"https://depscope.dev/integrate","hint_bulk":"You've called /api/check 27 times in 60s. Save bandwidth + tokens with POST /api/check_bulk (1 round-trip for N pkgs)."},"requested_version":null,"_cache":"miss","_response_ms":437,"_powered_by":"depscope.dev — free package intelligence for AI agents","typosquat":{"is_suspected":false},"maintainer_trust":{"available":false},"malicious":{"is_malicious":false},"scorecard":{"available":false},"quality":{"available":false}}