|Think about Loose Coupling|
What is the largest system|code|site you have (>=90% of the work was your own) supported|created|inherited which was primarily in Perl?
I don't know since most of my projects are under 2000 lines of code (Perl's too damn powerful).
What are the main strategies that allowed you to pull it off?
Other than that, document every choice and every API for you WILL forget the specifics.
What are the main techniques|modules that allowed you to pull it off?
Stuff things in modules if it makes sense. Use OO where it makes sense. Release code you use in almost every project to CPAN (let others discover bugs for you so you can fix them before things go terribly wrong *grin*). That's why PLP, DBIx::Simple, again and Exporter::Tidy are on CPAN. They wouldn't be if I didn't use them myself.
how about a bulleted list?
Bulleted lists form a great strategy, a reasonable technique and perhaps a nice module. But they're a terrible brand of coffee!
What was the single biggest mistake (most costly to your own time) you made while doing it?
Not documenting was my biggest mistake. Lack of documentation saves time at first, but takes a LOT of time when you need to change the code a few years later.
Another VERY big mistake was starting to code in Perl without actually knowing the language well enough. I do know Perl quite well now, but my old code is disastrous. Even though I did make enough money off my first projects to start my own business, I do regret that I did not wait another year or maybe two. And I wish I had a good book back then: I learnt most of what I know about Perl from perldocs and IRC.
One very good thing you can do is letting people here and on IRC review your code. Disclosing source usually also means tidier code :)
Another piece of advice: choose a readable and CONSISTENT programming style. Whitespace DOES matter!