use strict; my $ref = symetrical(100); for my $key (sort {$a <=> $b} keys %$ref) { printf "%-10d%d\n",$key,$ref->{$key}; } sub symetrical { my %symet; my $max = shift; for my $i (0..$max) { my $square = $i * $i; if (sym($square)) { $symet{$i} = $square if sym($i); } } sub sym { $num = shift; ($num eq reverse $num) ? $num : ''; } return \%symet; } __END__ Sample output 1 1 2 4 3 9 11 121 22 484 101 10201 111 12321 121 14641 202 40804 212 44944 #### package GOLF; use strict; my $code = <<'CODE'; # paste code in here CODE $code =~ s/^\s+|\s+$//gm; $code =~ s/\n//g; $code =~ s/}$//; $code =~ s/^sub\s+(\w+)\s*{//; printf "Length of sub '$1' => %d chars\n", length $code;