Main Content

Some one line Perl tips and techniques

Archive - Originally posted on "The Horse's Mouth" - 2007-08-21 13:52:46 - Graham Ellis

I'm running a Perl Course this week ... a small group, so we can look at some very interesting constructs that I wouldn't normally cover / consider on a public course.

Comment out a block of code with an impossible condition

if (1 == 0) { ....

This is a great way to temporarily comment out a whole block of your code if you want to supress it for a while.

Toggle a variable between two values

$n = 3 - $n;

If $n was one before the statement, it becomes 2, and vice versa. The constant you use (3 in this case) is simply the sum of the two values you wish to toggle between.

Output an integer in binary

printf ("%b",$value);

sprintf and printf in Perl support the "b" formatter for binary - in addition to the more common "o" for Octal, "d" for decimal and "x" for hexadecimal.

All of these techniques together ...

# Some Perl Tricks
$n = 1;
if (1 == 0) {
  print "This is a comment";
  print "And so is this"; }
for ($k=1;$k<20;$k+=3) {
  $n = 3 - $n;
  printf ("%05b %2d %2d\n",$k,$n,$k); }


And when we run that:

grahamellis$ perl ppa
00001 2 1
00100 1 4
00111 2 7
01010 1 10
01101 2 13
10000 1 16
10011 2 19
grahamellis$