Yes, when applied to the future the FC and PPC indicate the same time frame, an event that is competed before some point in the future. And it is the trigger that determines whether you can use one, the other, or both. In fact the following mean the same:
Assim/logo que tiver aprendido tudo, posso ir de férias
Assim/logo que tenha aprendido tudo, posso ir de férias
But if you start with quando, you use the FC only:
Quando tiver aprendido tudo, posso ir de férias
To express a condition, you use the FC with se, but the PPC with caso, and they mean the same:
Na próxima semana, se já tiver aprendido tudo, vou poder ir de férias
Na próxima semana, caso já tenha aprendido tudo, vou poder ir de férias
In the following example there’s a very subtle difference: the FC implies a stronger confidence that you really will have learned something; the PPC is more hypothetical, you may or may not have learned something by tomorrow. But the time frame is exactly the same:
Estuda, e amanhã mostras-me tudo o que tiveres aprendido
Estuda, e amanhã mostras-me tudo o que tenhas aprendido
In fact, the FC and PPC behave just as the corresponding simple tenses, the future and present subjunctive that go into their formation: se já souberes/caso já saibas tudo, podes ir (agora)… quando souberes/assim que souberes /assim que saibas tudo, podes ir… tudo o que souberes/saibas.
The type of examples above is all the present subjunctive and FC are used for (I hope I’m not forgetting any case). Then all the other things that trigger the present subjunctive will also trigger the PPC if we want to indicate that the event will be completed before some point in the future. One such trigger is doubt and uncertainty, hence your second example. Except that with até hoje à noite I’d use simply aprenda; but I can tweak your example for the PPC:
Duvido que aprenda alguma coisa até hoje à noite
Duvido que hoje à noite eu já tenha aprendido alguma coisa
Other examples where there is uncertainty:
Não creio que ele já tenha saído do trabalho quando nós chegarmos
Talvez amanhã ele já tenha chegado
É possível/provável que amanhã ele já tenha chegado
Also if the main clause expresses (a) evaluation, (b) hope, (c) need:
(a) Acho melhor que amanhã por esta hora já tenhas feito tudo [sounds like a threat]
(b) Espero que quando eu voltar de férias as obras na casa ao lado já tenham acabado
(c) É preciso que quando ele chegar tu já tenhas ido embora