Future web: XHTML 2

<!-- HTML -->
<h1>Title</h1>
<p>Intro text...</p>
<h2>Chapter 1</h2>
<p> Chapter body </p>

<!-- XHTML 2 -->
<section>
  <h> Title </h>
  <p>Intro text...</p>
  <section>
    <h> Chapter 1 </h>
    <p> Chapter body </p>
  </section>
</section>

<blockcode xmlns:prog="http://example.com/ProgrammingLanguages/"
                      property="prog:language" content="Perl5">
    sub hello {
        print "Hello, World!\n";
    }
</blockquote>

<p src="holiday.png" srctype="image/png">
    <span src="holiday.gif" srctype="image/gif">
        An image of us on holiday.
    </span>
</p>

<span src="photo.jpg" media="screen">Me at work</span>
<span src="photo-hires.jpg" media="print">Me at work</span>

<link media="print" title="The manual in PostScript"
  hreftype="application/postscript"
  rel="alternate" href="http://example.com/manual/postscript.ps"/>

<meta property="dc:creator">Chris Dolan</meta>
<meta property="dc:created" datatype="xsd:date">2005-10-28</meta>
<link rel="author" href="http://www.chrisdolan.net/" />

<html>
  <head>
    <access key="s" title="Search" targetrole="search" />
  </head>
  <body>
    ...
    <form role="search" action="search.cgi">
      Search: <input type="text" name="q" />
    </form>
    ...
  </body>
</html>

PAR: Packaging for Perl applications

#!perl -w
use PAR 'foo.par';
use Foo;
...

#!perl -w
use PAR 'http://www.example.com/foo.par';
use Foo;
...

---- hello.pl ----
#!perl -w
use strict;
use Tk;
my $mw = MainWindow->new;
$mw->Label(-text => 'Hello, world!')->pack;
$mw->Button(-text => 'Quit', -command => sub { exit })->pack;
MainLoop;

/sw/bin/pp -o hello hello.pl

% zipinfo hello
Archive:  hello   3013468 bytes   689 files
drwxr-xr-x  2.0 unx        0 b- stor 23-Oct-05 14:21 lib/
drwxr-xr-x  2.0 unx        0 b- stor 23-Oct-05 14:21 script/
-rw-r--r--  2.0 unx    20016 b- defN 23-Oct-05 14:21 MANIFEST
-rw-r--r--  2.0 unx      210 b- defN 23-Oct-05 14:21 META.yml
-rw-r--r--  2.0 unx     4971 b- defN 23-Oct-05 14:21 lib/AutoLoader.pm
-rw-r--r--  2.0 unx     4145 b- defN 23-Oct-05 14:21 lib/Carp.pm
... [snipped 679 lines] ...
-rw-r--r--  2.0 unx    12966 b- defN 23-Oct-05 14:21 lib/warnings.pm
-rw-r--r--  2.0 unx      787 b- defN 23-Oct-05 14:21 lib/warnings/register.pm
-rw-r--r--  2.0 unx      186 t- defN 23-May-05 22:22 script/hello.pl
-rw-r--r--  2.0 unx      262 b- defN 23-Oct-05 14:21 script/main.pl
689 files, 2742583 bytes uncompressed, 1078413 bytes compressed:  60.7%