Santa is nothing if not fair, and insists that the games he gives out be fair too. To that end he employs Acme::Grep2D to evaluate board game configurations, and for quality control of pre-press editions of the word searches in puzzle books. It also comes in quite handy for parsing concrete poems.
There are 25 stars.
3=> 1, 4=> 0 = STAR
49=> 1, 7=> 0 = STAR
19=> 1, 13=> 0 = STAR
57=> 1, 17=> 0 = STAR
12=> 1, 20=> 0 = STAR
13=>-1, 4=> 0 = STAR
59=>-1, 7=> 0 = STAR
29=>-1, 13=> 0 = STAR
67=>-1, 17=> 0 = STAR
22=>-1, 20=> 0 = STAR
11=>-1, 7=>-1 = STAR
27=>-1, 16=>-1 = STAR
65=>-1, 20=>-1 = STAR
57=>-1, 10=>-1 = STAR
20=>-1, 23=>-1 = STAR
5=> 1, 7=>-1 = STAR
14=> 1, 23=>-1 = STAR
21=> 1, 16=>-1 = STAR
51=> 1, 10=>-1 = STAR
59=> 1, 20=>-1 = STAR
8=> 0, 1=> 1 = STAR
17=> 0, 17=> 1 = STAR
24=> 0, 10=> 1 = STAR
54=> 0, 4=> 1 = STAR
62=> 0, 14=> 1 = STAR
1 use Acme::Grep2D; 2 3 #Count all the stars in the sky 4 $g2d = Acme::Grep2D->new(text => do{ local $/ = undef; <DATA> }); 5 6 printf "There are %i stars.\n", scalar( @matches = $g2d->Grep(qr/star/i) ); 7 8 foreach( @matches ){ 9 printf '%2$2i=>%4$2i, %3$2i=>%5$2i = %7$s'."\n", @{$_}, $g2d->extract($_) 10 } 11 12 __DATA__ 13 skyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskysky 14 skyskyskSskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskysky 15 skyskyskTskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskysky 16 skyskyskAskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskysky 17 skySTARkRsRATSyskyskyskyskyskyskyskyskyskyskyskyskyskySkyskyskyskyskyskyskysky 18 skyskysAyAkyskyskyskyskyskyskyskyskyskyskyskyskyskyskyTkyskyskyskyskyskyskysky 19 skyskyTkysTyskyskyskyskyskyskyskyskyskyskyskyskyskyskyAkyskyskyskyskyskyskysky 20 skyskSskyskSskyskyskyskyskyskyskyskyskyskyskyskysSTARyRkRATSskyskyskyskyskysky 21 skyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskAsAyskyskyskyskyskyskysky 22 skyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskysTyskTskyskyskyskyskyskysky 23 skyskyskyskyskyskyskyskySkyskyskyskyskyskyskyskyskySkyskySkyskyskyskyskyskysky 24 skyskyskyskyskyskyskyskyTkyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskysky 25 skyskyskyskyskyskyskyskyAkyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskysky 26 skyskyskyskyskyskysSTARyRkRATSskyskyskyskyskyskyskyskyskyskyskyskyskyskyskysky 27 skyskyskyskyskyskyskyskAsAyskyskyskyskyskyskyskyskyskyskyskyskSskyskyskyskysky 28 skyskyskyskyskyskyskysTyskTskyskyskyskyskyskyskyskyskyskyskyskTskyskyskyskysky 29 skyskyskyskyskyskyskySkyskySkyskyskyskyskyskyskyskyskyskyskyskAskyskyskyskysky 30 skyskyskyskyskyskSskyskyskyskyskyskyskyskyskyskyskyskyskySTARkRsRATSyskyskysky 31 skyskyskyskyskyskTskyskyskyskyskyskyskyskyskyskyskyskyskyskysAyAkyskyskyskysky 32 skyskyskyskyskyskAskyskyskyskyskyskyskyskyskyskyskyskyskyskyTkysTyskyskyskysky 33 skyskyskyskySTARkRsRATSyskyskyskyskyskyskyskyskyskyskyskyskSskyskSskyskyskysky 34 skyskyskyskyskysAyAkyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskysky 35 skyskyskyskyskyTkysTyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskysky 36 skyskyskyskyskSskyskSskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskysky 37 skyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskyskysky