package Rocket::PreFlight; use Diagnostics::Weather; use Diagnostics::Gravity; sub verify_min_max { my ($actual, $min, $max) = @_; return 1 if $actual <= $max and $actual >= $min; return; } sub verify { my ($actual, $required) = @_; return 1 if $actual == $required; } sub ok_to_launch { # Check Temperature verify_min_max( Diagnostics::Weather::current_temp(), -10, 50 ) or die "Temperature out of range for launch\n"; # Check Visibility verify_min_max( Diagnostics::Weather::current_cloud_cover(), 0, 75 ) or die "Too cloudy for launch\n"; # Check Gravity verify( Diagnostics::Gravity::current_gravity(), 9.78 ) or die "What planet are we on?\n"; return 1; } 1;