Perl’s a hard language to work in–it’s not strictly typed, its syntax is non-parseable and ambiguous, and it takes a long time to learn the difference between $, @, and %. Statements mean different things in different contexts depending on their runtime types and what kind of result you are computing.
Fortunately, the ever-brilliant Xarpb has a guide to 5 great perl programming techniques to help you out: the map function, default assignment with ||=, slicing hashes and arrays, executing regular expressions, and dispatch tables.