Les '/' sont reconnus dans les chemins sous perl quel que soit l'OS. Le seul cas qui peut poser problème c'est dans un appel à un programme externe via system() ou `` (et encore ca passe de plus en plus souvent).
Pour revenir à la création de répertoire, si ta variable $comp_nom est vide (tu ne précise pas ce que tu entres come info quand ça plante, ça aiderai), les chemins générés deviennent /include et /obj qui sont effectivement des chemins invalides sous windows, la racine d'un disque étant C:, D: etc. Si tu veux créer ces chemins sur la racine D: par exemple, il faut t'arranger pour que les chemins générés soient d:/include et d:/obj.
Tu dis que ca passe si tu remplaces cela par une lettre, est-ce que par hasard il ne t'aurait pas créé <lettre>/include et <lettre>/obj dans le chemin d'où tu appelles ton script ? (si c'est le cas cela confirme ce que je raconte au-dessus). Sinon où par rapport au répertoire d'où tu appelles ton script ?
Enfin il me semble que mkpath est considéré comme du "legacy" et qu'il est préférable d'utiliser maintenant make_path(). Dans ton cas:
make_path("$comp_nom/include","$comp_nom/obj",{verbose => 1})
Partager