Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Golf Do-s and Don't-s

by japhy (Canon)
on May 02, 2001 at 07:51 UTC ( [id://77230] : perlmeditation . print w/replies, xml ) Need Help??

With the onslaught of golf meditations recently (of which I shall soon be posting one -- fear not!), I'm posting a set of reminders that you may be wont to take heed of, ere you post again!
  • if you use a regex, be sure . can match a newline, by using the /s modifier to the regex
  • pop is two characters less than shift
  • assign to @_ and $_ if you can -- it saves a my declaration (if you're stingy), and allows operations like regexes and pop to work without an argument
  • screw $1 and the like, and use $& and its friends instead
  • map() is probably a useful tool to master for golf
  • leave out semicolons wherever possible
  • don't explicitly return unless you must
  • doing .$/ is shorter than ."\n" -- same for .$" vs. ." "
  • {...;redo} is shorter than while(1){...}
  • {...;$x&&redo} is shorter than while($x){...}
  • use || and &&

japhy -- Perl and Regex Hacker

Replies are listed 'Best First'.
Re: Golf Do-s and Don't-s
by dragonchild (Archbishop) on Apr 03, 2002 at 15:03 UTC
    A few questions on technique:
    1. Is there anything shorter than join'',?
    2. What are some good sorting techniques?

    We are the carpenters and bricklayers of the Information Age.

    Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.

      Is there anything shorter than join'',?

      It depends. This:

      is one character more than
      but if you have to do two joins,
      is shorter than