{"record":{"id":"0feae094cc083393","repo":"oraios/serena","slug":"perl-is-not-installed-please-install-perl-from-ht","errorCode":null,"errorMessage":"Perl is not installed. Please install Perl from https://www.perl.org/get.html and make sure it is added to your PATH.","messagePattern":"Perl is not installed\\. Please install Perl from https://www\\.perl\\.org/get\\.html and make sure it is added to your PATH\\.","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"src/solidlsp/language_servers/perl_language_server.py","lineNumber":101,"sourceCode":"        \"\"\"\n        Check if required Perl runtime dependencies are available.\n        Raises RuntimeError with helpful message if dependencies are missing.\n        \"\"\"\n        platform_id = PlatformUtils.get_platform_id()\n\n        valid_platforms = [\n            PlatformId.LINUX_x64,\n            PlatformId.LINUX_arm64,\n            PlatformId.OSX,\n            PlatformId.OSX_x64,\n            PlatformId.OSX_arm64,\n        ]\n        if platform_id not in valid_platforms:\n            raise RuntimeError(f\"Platform {platform_id} is not supported for Perl at the moment\")\n\n        perl_version = cls._get_perl_version()\n        if not perl_version:\n            raise RuntimeError(\n                \"Perl is not installed. Please install Perl from https://www.perl.org/get.html and make sure it is added to your PATH.\"\n            )\n\n        perl_ls_version = cls._get_perl_language_server_version()\n        if not perl_ls_version:\n            raise RuntimeError(\n                \"Found a Perl version but Perl::LanguageServer is not installed.\\n\"\n                \"Please install Perl::LanguageServer: cpanm Perl::LanguageServer\\n\"\n                \"See: https://metacpan.org/pod/Perl::LanguageServer\"\n            )\n\n        return \"perl -MPerl::LanguageServer -e 'Perl::LanguageServer::run'\"\n\n    @staticmethod\n    def _resolve_filter_settings(solidlsp_settings: SolidLSPSettings) -> tuple[list[str], list[str]]:\n        \"\"\"Resolve the ``fileFilter`` / ``ignoreDirs`` to hand to Perl::LanguageServer.\n\n        Reads optional overrides from ``ls_specific_settings[\"perl\"]`` (keys ``file_filter`` and","sourceCodeStart":83,"sourceCodeEnd":119,"githubUrl":"https://github.com/oraios/serena/blob/7fcbca7e62555ec2287ddb2f083caee805848ea6/src/solidlsp/language_servers/perl_language_server.py#L83-L119","documentation":"Raised when the Perl language server setup cannot detect a Perl interpreter (cls._get_perl_version() returns falsy). The library requires a working perl on PATH before it can run Perl::LanguageServer, so it aborts with instructions to install Perl.","triggerScenarios":"Instantiating the Perl language server when `perl -v` (or equivalent version probe) fails or returns nothing — perl absent, not on PATH, or broken installation.","commonSituations":"Perl not installed (common on minimal Docker images and fresh Windows machines); perl installed but not on PATH for the launching process; perlbrew/plenv environment not activated; broken perl after OS upgrade.","solutions":["Install Perl: on Linux `sudo apt install perl` / `dnf install perl`; on macOS it ships by default; on Windows use Strawberry Perl.","Verify `perl -v` works in the same shell that launches the server; fix PATH if the binary exists but isn't found (e.g. add C:\\Strawberry\\perl\\bin on Windows).","If using perlbrew/plenv, activate the environment (`perlbrew use <ver>`) before launching so the version probe sees perl.","In containers, add perl installation to the image before starting the server."],"exampleFix":"// before (Dockerfile, minimal image)\nFROM ubuntu:24.04\nCMD python -m app  # perl missing\n// after\nFROM ubuntu:24.04\nRUN apt-get update && apt-get install -y perl\nCMD python -m app","handlingStrategy":"validation","validationCode":"import shutil, subprocess\ndef perl_installed():\n    if not shutil.which(\"perl\"):\n        return False\n    return subprocess.run([\"perl\", \"-v\"], capture_output=True).returncode == 0","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Install perl in images/CI before running the server","Add perl to PATH (Strawberry Perl on Windows: C:\\Strawberry\\perl\\bin)","Activate perlbrew/plenv environments before launch","Preflight with `perl -v` in the exact launching environment"],"tags":["perl","missing-dependency","path","environment-setup"],"backgroundTag":"dependency-not-installed","analyzedSha":"7fcbca7e62555ec2287ddb2f083caee805848ea6","analyzedAt":"2026-08-29T00:04:09.619Z","schemaVersion":2},"datasetVersion":"2026-08-29T02:17:18.158Z"}