use strict; use warnings; sub init_doors { my @doors; for my $i (1 .. 100) { $doors[$i] = 'Closed'; } return(@doors); } sub toggle_door { my $door_ref = shift; if( $$door_ref eq 'Closed' ) { $$door_ref = 'Open'; } else { $$door_ref = 'Closed'; } return $$door_ref; } sub loop_through_doors { my @doors = init_doors(); for my $pass (1 .. 100) { for my $visit (1 .. 100) { if (($visit % $pass) == 0) { toggle_door(\$doors[$visit]); } } } return(@doors); } 1;