Qi, according to the comments in the perl_5.38.2.bb recipe, perl-modules recommends "all the other perl packages" which might include optional packages. I assume leaving optional packages as "runtime recommended" (RRECOMMENDS) - aka. soft dependencies - can reduce the possibility of conflicts. The following patch changed the package_manager to ignore RRECOMMENDS to avoid conflict:
https://lists.openembedded.org/g/openembedded-core/message/167303