diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
index 8cd2473224080818f9c891946a0eddf2c1bc8f61..73d55b0676d73d16af0683e9df0dcca6c006ad90 100644
--- a/mkspecs/features/qt_functions.prf
+++ b/mkspecs/features/qt_functions.prf
@@ -194,7 +194,9 @@ defineTest(qtPrepareTool) {
     $$1 = $$eval(QT_TOOL.$${2}.command)
     isEmpty($$1) {
         $$1 = $$[QT_HOST_BINS]/$$2
-        contains(QMAKE_HOST.os, Windows):!contains($$1, .*\\.(exe|bat)$) {
+        exists($$eval($$1).pl) {
+            $$1 = perl -w $$eval($$1).pl
+        } else: contains(QMAKE_HOST.os, Windows):!contains($$1, .*\\.(exe|bat)$) {
             exists($$eval($$1).bat) {
                 $$1 = $$eval($$1).bat
             } else {