diff --git a/swig/interfaces/Perl/typemaps-xmlch.i b/swig/interfaces/Perl/typemaps-xmlch.i
index a873968e49fa2c17772e8ded0f2fd568206001c0..42308931952077accfce4747810b4cdb5ef23972 100644
--- a/swig/interfaces/Perl/typemaps-xmlch.i
+++ b/swig/interfaces/Perl/typemaps-xmlch.i
@@ -61,7 +61,18 @@
 %}
 
 // varout typemap (for global variables)
+// useful for XMLUni constants
 %typemap(varout) XMLCh[] %{
   sv_setsv((SV*)$result, XMLString2Perl($1));
 %}
 
+// fgBooleanValueSpace is an array of XMLCh*
+%typemap(varout) XMLCh[][8] %{
+    AV *myav = newAV();
+    for (int i=0;i<4;i++) {
+        av_push(myav, XMLString2Perl($1[i]));
+    }
+
+    SV* rv = newRV((SV*)myav);
+    sv_setsv((SV*)$result, rv);
+%}