Innate skill and experience, but mostly experience. As with most things the more you do, and the greater the variety, the better you get (probably).
It's largely to do with building up tool sets. As you become more experienced you have more past solutions (experience / tools) that you can bring to bear on the current problem and better understanding of the different trade offs each possible solution may entail.
Since you have already discovered PerlMonks you are already in a good position to gain useful experience: delve into the Seekers of Perl Wisdom archives and try your hand at solving the various problems presented there. When you feel confident, contribute answers of your own to current questions. This is an excellent place to gain experience at almost any level!
True laziness is hard work
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
| & || & |
| < || < |
| > || > |
| [ || [ |
| ] || ] ||