The present perfect subjunctive, also known as the past or perfect
subjunctive, is used when a verb or expression requiring the
subjunctive in the main clause is in the present, future, or present
perfect. You might notice that the same definition holds true for
the regular (present) subjunctive, so what's the difference? The
present subjunctive is used when the dependent clause is in the
present or future, while the present perfect subjunctive is used
when the dependent clause is in the past.

For example, if you want to say "I doubt you'll do it," you'd use
the present subjunctive: Dudo que lo hagas. But if you wanted
to say "I doubt that you did it," you'd use the present perfect
subjunctive: Dudo que lo hayas hecho.

Another example: "It's good that he is studying" - Es bueno que
estudie vs "It's good that he studied" - Es bueno que haya
estudiado.