package Rocket::LandingGear; use NASA::System; sub is_landing_gear_down { NASA::System::IsLandingGearDown(); } sub extend_landing_gear { NASA::System::LandingGearDown(); } sub retract_landing_gear { NASA::System::LandingGearUp(); } my $last_altitude; sub altitude_change { my $altitude = shift; if ($altitude > $last_altitude) { # ascending if ($altitude > 450 and is_landing_gear_down()) { retract_landing_gear(); } } else { # descending if ($altitude < 500 and !is_landing_gear_down()) { extend_landing_gear(); } } $last_altitude = $altitude; } 1;