diff --git a/freedesktop.org.xml.in b/freedesktop.org.xml.in
index fdac74f..e4522c6 100644
--- a/freedesktop.org.xml.in
+++ b/freedesktop.org.xml.in
@@ -2826,11 +2826,37 @@ command to generate the output files.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_comment>Test Anything Protocol output
+
+
+
+
+
+
<_comment>PHP script
@@ -3311,7 +3337,7 @@ command to generate the output files.
-
+
<_comment>Troff document (with manpage macros)
diff --git a/tests/list b/tests/list
index f8d2cd6..e848f97 100644
--- a/tests/list
+++ b/tests/list
@@ -272,6 +272,13 @@ test.jnlp application/x-java-jnlp-file
# Python script
test.py text/x-python
test.pyx text/x-python ox
+# Perl
+test.pl application/x-perl
+test.pm application/x-perl
+test.t application/x-perl
+# Test Anything Protocol output
+test1.tap application/x-tap
+test2.tap application/x-tap
# xml subtypes
test.ttx application/x-font-ttx
diff --git a/tests/test.pl b/tests/test.pl
new file mode 100644
index 0000000..306ad8e
--- /dev/null
+++ b/tests/test.pl
@@ -0,0 +1,7 @@
+#!/usr/bin/env perl
+
+use 5.010_001; # Require Perl5 version 10.1 or newer
+use strict;
+use warnings;
+
+say scalar localtime; # now
diff --git a/tests/test.pm b/tests/test.pm
new file mode 100644
index 0000000..1c47751
--- /dev/null
+++ b/tests/test.pm
@@ -0,0 +1,9 @@
+use 5.010_001; # Require Perl5 version 10.1 or newer
+use strict;
+use warnings;
+
+package test;
+
+sub now {
+ say scalar localtime; # now
+}
diff --git a/tests/test.t b/tests/test.t
new file mode 100644
index 0000000..48929e3
--- /dev/null
+++ b/tests/test.t
@@ -0,0 +1,16 @@
+use Test::More tests => 4;
+
+my $true_value = !0;
+ok( $true_value, "Boolean negation of 0 is true" );
+
+SKIP: {
+ skip("Confused implementor", 1);
+ is( $true_value, "0 but true", "'0 but true' is true");
+}
+
+TODO: {
+ local $TODO = "Need fuzzy magic";
+ is( $true_value, 0.999999999999999, "True-ish in the fuzzy sense");
+}
+
+is( $true_value, 1, "Boolean negation of 0 is 1" );
diff --git a/tests/test1.tap b/tests/test1.tap
new file mode 100644
index 0000000..1b7c373
--- /dev/null
+++ b/tests/test1.tap
@@ -0,0 +1,9 @@
+1..4
+ok 1 - Boolean negation of 0 is true
+ok 2 # skip Confused implementor
+not ok 3 - True-ish in the fuzzy sense # TODO Need fuzzy magic
+# Failed (TODO) test 'True-ish in the fuzzy sense'
+# at tests/test.t line 13.
+# got: '1'
+# expected: '0.999999999999999'
+ok 4 - Boolean negation of 0 is 1
diff --git a/tests/test2.tap b/tests/test2.tap
new file mode 100644
index 0000000..965b3fd
--- /dev/null
+++ b/tests/test2.tap
@@ -0,0 +1,9 @@
+ok 1 - Boolean negation of 0 is true
+ok 2 # skip Confused implementor
+not ok 3 - True-ish in the fuzzy sense # TODO Need fuzzy magic
+# Failed (TODO) test 'True-ish in the fuzzy sense'
+# at tests/test.t line 13.
+# got: '1'
+# expected: '0.999999999999999'
+ok 4 - Boolean negation of 0 is 1
+1..4