in reply to Solving Puzzles

  1. find a representation for your m×n rectangle.
    e.g. my @rect=[ (1) x $m ] x $n;
  2. find a representation for your L-shapes
  3. code some functions to turn or flip your shapes
  4. code a function that will put one L-shape in every possible orientation into each possible location of your rectangle
  5. after each time putting it in, the function should call itself in order to put another L in
  6. if all possiblities are tried, the function has to return
That's just one stupid strategy I can think of. With this I solved a puzzle many years ago in LOGO on my C64. I couldn't sleep that night because each time a solution was found, the printer made a loud noise printing it ;-)