#!/usr/bin/perl # # Tool to clean up marshal spreadsheet data, 2017 # use strict; use warnings; use Data::Dumper; my $clubs = { 'AAC' => { }, 'Eerste Rivier' => { 'captain' => 'Raphael Manual', 'captain_ph' => '084-494-4525', 'email' => 'raphaeljm1@gmail.com', }, 'Spartan Harriers' => { 'captain' => 'Gavin Craig', 'captain_ph' => '076-569-6898', 'email' => 'gavinc@ctpflexibles.co.za', }, 'Nantes' => { 'captain' => 'Caroline Peters', 'captain_ph' => '073-029-7879', 'email' => 'carolinepeters1964@gmail.com', }, 'Midas Spartans' => { 'captain' => 'Michael Schouw', 'captain_ph' => '083-635-1346', 'email' => 'schouw.za@gmail.com', }, 'Edgemead Runners' => { 'captain' => 'Stephan Roux ', 'captain_ph' => '082-433-0230', 'email' => 'raceconvener@edgemeaddrunners.org.za', }, }; my @marshals; sub assign_club { my $position = shift; my $club = shift; $marshals[$position]->{'club'} = $club; foreach my $key ( keys %{ $clubs->{$club} } ) { $marshals[$position]->{$key} = $clubs->{$club}->{$key}; } } for ( my $position = 0; $position < 324; $position++ ) { if ($position > 0 && $position <= 10) { assign_club( $position, 'AAC' ); $marshals[$position]->{'captain'} = "William Ruijsch van Dugteren"; $marshals[$position]->{'captain_ph'} = ''; } elsif ($position > 10 && $position <= 35 ) { assign_club( $position, 'AAC' ); $marshals[$position]->{'captain'} = "Darwees Gesant"; } elsif ($position > 35 && $position <= 54 ) { assign_club( $position, 'AAC' ); $marshals[$position]->{'captain'} = "Faried Rinquest"; } elsif ($position > 54 && $position <= 69 ) { assign_club( $position, 'AAC' ); $marshals[$position]->{'captain'} = ''; } elsif ($position > 69 && $position <= 80 ) { assign_club( $position, 'AAC' ); $marshals[$position]->{'captain'} = 'Colin Sedeman'; } elsif ($position > 80 && $position <= 126 ) { assign_club( $position, 'Eerste Rivier' ); } elsif ($position > 126 && $position <= 127 ) { assign_club( $position, 'Spartan Harriers' ); } elsif ($position > 127 && $position <= 131 ) { assign_club( $position, 'Eerste Rivier' ); } elsif ($position > 131 && $position <= 132 ) { assign_club( $position, 'Spartan Harriers' ); } elsif ($position > 132 && $position <= 153 ) { assign_club( $position, 'Nantes' ); } elsif ($position > 153 && $position <= 199 ) { assign_club( $position, 'Midas Spartans' ); } elsif ($position > 199 && $position <= 238 ) { assign_club( $position, 'Nantes' ); } elsif ($position > 238 && $position <= 250 ) { assign_club( $position, 'Spartan Harriers' ); } elsif ($position > 250 && $position <= 256 ) { assign_club( $position, 'Spartan Harriers' ); } elsif ($position > 256 && $position <= 257 ) { assign_club( $position, 'Edgemead Runners' ); } elsif ($position > 257 && $position <= 261 ) { assign_club( $position, 'Spartan Harriers' ); } elsif ($position > 261 && $position <= 264 ) { assign_club( $position, 'Edgemead Runners' ); } elsif ($position > 264 && $position <= 274 ) { assign_club( $position, 'Spartan Harriers' ); } elsif ($position > 274 && $position <= 281 ) { assign_club( $position, 'AAC' ); $marshals[$position]->{'captain'} = 'Keith Bake'; } elsif ($position > 281 && $position <= 297 ) { assign_club( $position, 'Edgemead Runners' ); } elsif ($position > 297 && $position <= 301 ) { assign_club( $position, 'AAC' ); $marshals[$position]->{'captain'} = 'Colin Sedeman'; } elsif ($position > 301 && $position <= 313 ) { assign_club( $position, 'AAC' ); $marshals[$position]->{'captain'} = 'Keith Bake'; } elsif ($position > 313 && $position <= 323 ) { assign_club( $position, 'AAC' ); $marshals[$position]->{'captain'} = 'Colin Sedeman'; } } =cut AAC : Positions 1 to 10 Start - William Ruijsch van Dugteren AAC : Positions 11 to 35 Darawees Gasant AAC : positions 36 to 54 Faried Rinquest AAC : Positions 55 to 69 may be John Damata AAC : Positions 70 to 80, 298 to 301 and 314 to 323 - Collin Sedeman AAC: Positions 275 to 281, and 302 to 313 - Keith Bake Eerste Rivier : Positions 81 to 126 and 128 to 131 (50 marshals ) - Rapheal Manual 084 494 4525 raphaeljm1@gmail.com Nantes : Positions 133 to 153 and 200 to 238 (60 marshals ) - Caroline Peters 073 029 7879 carolinepeters1964@gmail.com Midas Spartans : Positions 154 to 199 (47 marshals ) - Michael Schouw 083 635 1346 schouw.za*gmail.com Spartan Harriers : Positions 239 to 250, 132 x 2, 127, 251 to 256, 258 to 261, 265 to 274 ( 35 marshals ) - Gavin Craig 076 569 6898 gavinc@ctpflexibles.co.za Edgemead Runners : Positions 257, 262 to 265 and 282 to 297 ( 20 marshals ) - Stephan Roux 082 433 0230 raceconvener@edgemeaddrunners.org.za =cut #warn Dumper(@marshals); print "CASE\n"; foreach (1..$#marshals) { my $data = $marshals[$_]->{'email'}; print qq( WHEN "position" = $_ THEN '$data' ) if $data; } print "END\n";