> For the complete documentation index, see [llms.txt](https://cpb.gitbook.io/book/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cpb.gitbook.io/book/languages/perl/disadvantages.md).

# Disadvantages

The language has a bad reputation because of the "write only" way code can be produced in it, but, to be honest, you can write obfuscated code in all languages, some make it more difficult (Assembly, Java), some make it less difficult (JavaScript, Perl).

Perl is easy to write, hard to write well. You will need a lot of experience to write good Perl code.

Perl isn't geared for User Interfaces. To this day I can't figure a simple way to create UI.

If you did years of Linux, bash, C, sed, awk, etc., for you Perl may seem intuitive. But if you came from Windows, and you don't have enough UNIX experience, a lot of the "intuitive" stuff probably looks totally insane. If you were forced to maintain such "write-only" code, you'd be probably angry.

Finally, using prefixes like $, @ and % on identifiers isn't a good way to express your type system. Sigils are coming from BASIC-like languages. Ideas that BASIC initiated in general aren't very good practices today.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cpb.gitbook.io/book/languages/perl/disadvantages.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
