Net::DAV::Server - Provide a DAV Server


  my $filesys = Filesys::Virtual::Plain->new({root_path => $cwd});
  my $webdav = Net::DAV::Server->new();

  my $d = HTTP::Daemon->new(
    LocalAddr => 'localhost',
    LocalPort => 4242,
    ReuseAddr => 1) || die;
  print "Please contact me at: ", $d->url, "\n";
  while (my $c = $d->accept) {
    while (my $request = $c->get_request) {
      my $response = $webdav->run($request);
      $c->send_response ($response);


This module provides a WebDAV server. WebDAV stands for "Web-based Distributed Authoring and Versioning". It is a set of extensions to the HTTP protocol which allows users to collaboratively edit and manage files on remote web servers.

Net::DAV::Server provides a WebDAV server and exports a filesystem for you using the Filesys::Virtual suite of modules. If you simply want to export a local filesystem, use Filesys::Virtual::Plain as above.

This module doesn't currently provide a full WebDAV implementation. However, I am working through the WebDAV server protocol compliance test suite (litmus, see and will provide more compliance in future. The important thing is that it supports cadaver and the Mac OS X Finder as clients.


Leon Brocard <>


  G. Wade Johnson <>  ( co-maintainer )
  Erin Schoenhals <>  ( co-maintainer )
  Bron Gondwana <> ( co-maintainer )
  Leon Brocard <>     ( original author )

The latest copy of this package can be checked out using Subversion from

Development code at


Copyright (C) 2004, Leon Brocard Changes copyright (c) 2010, cPanel, Inc.

This module is free software; you can redistribute it or modify it under the same terms as Perl itself.