Here you can find a Perl implementation of the (external link!) eight queens puzzle.
The eight queens puzzle is the problem of placing eight chess queens on an 8×8 chessboard so that no two queens can take each other. Taking rotations and mirroring into account, there is only one symmetrical solution:
Please read my Disclaimer.
# Die Lösungen des Acht-Damen-Problems
# aus: Niklaus Wirth; Algorithmen und Datenstrukturen; B. G. Teubner, Stuttgart, S. 172
#
# 8 Damen sollen auf dem Schachbrett so aufgestellt werden, dass sie sich
# nicht schlagen können.
#
# Übertragen von PASCAL in PERL von B. Plumhoff
#
sub prnt {
for ($k=1; $k<9; $k++) {
print $x[$k]." ";
}
print "\n";
}
sub try {
local($i, $j) = @_;
for ($j=1; $j<9; $j++) {
if ($a[$j] && $b[$i+$j] && $c[7+$i-$j]) {
$x[$i] = $j;
$a[$j] = $b[$i+$j] = $c[7+$i-$j] = 0;
if ($i < 8) {
&try($i+1);
} else {
&prnt;
}
$a[$j] = $b[$i+$j] = $c[7+$i-$j] = 1;
}
}
}
for ($i=1; $i<9; $i++) { $a[$i] = 1; }
for ($i=2; $i<17; $i++) { $b[$i] = 1; }
for ($i=0; $i<15; $i++) { $c[$i] = 1; }
print "\nDie Lösungen des Acht-Damen-Problems\n";
print '=' x 36;
print "\n" x 2;
&try(1);