Use Future Perfect (will have + past participle) for actions that will be COMPLETED before a specific time in the future. It looks forward from a future point to an action that will be finished by then.
Practice tip: Ask: Will the action be COMPLETED before a future time? Use Future Perfect with BY + time!