PerlDAV is a Perl library for modifying content on webservers using the WebDAV protocol. Now you can LOCK, DELETE and PUT files and much more on a DAV-enabled webserver.
The PerlDAV library consists of:
Learn more about WebDAV at http://www.webdav.org/
The latest version is: v0.31 (released 2002/04/13 12:21:07)
- Multiple people have confirmed that PerlDAV install and runs under Windows (subject to fixing the binmode bug below).
- Now works with mod_dav under Apache 2.
- Fixed bug to correctly handle the put/get of filenames with spaces in them.
- Fixed bug to allow the PUT of empty files.
- put() now uses binmode so that it works under Windows.
- HTTP redirect code added in the previous release was incorrectly returning a HTTP::Response instead of a HTTP::DAV::Response
- Fixed bug to allow https for copy and move (http:// was hardcoded).
- Fixed strange copy/move bug for Apache2.0's mod_dav.
See the Changes file for previous releases.
The lazy way to install PerlDAV:
$ perl -MCPAN -e shell cpan> install HTTP::DAV
Or the normal way:
Retrieve the latest copy from CPAN: http://www.cpan.org/authors/id/P/PC/PCOLLINS/
$ perl Makefile.PL # Creates the Makefile $ make # Runs the makefile $ make test # Optional (See Interopability below) $ make install # Installs dave and HTTP::DAV
With this method you will first have to install the pre-requisites: LWP and XML::DOM, see what are the prerequisites?.
When you install PerlDAV, the HTTP::DAV library will be installed to your Perl library location (usually /usr/local/lib/perl5)
dave will be installed to /usr/local/bin. This suits most people but you can modify this by using the INSTALLBIN flag:
$ perl Makefile.PL INSTALLBIN="/home/pcollins/bin"
To get the latest versions of these prerequisite modules you can simply type this at the command prompt:
$ <install expat> then: $ perl -MCPAN -e shell cpan> install LWP cpan> install XML::DOM
or if you just 'install HTTP::DAV' the lovely CPAN module should just magically install all of the prerequisites for you (you'll still need to manually instal expat though).
HTTP::DAV and dave are pure perl so only needs Perl5.003 (or later). PerlDAV is known to run under Windows (although I haven't tried it myself) and should run under all Unix systems.
Once you've installed PerlDAV, you can type:
$ perldoc HTTP::DAV $ man dave
There is a mailing list for PerlDAV for use by Developers and Users. Please see http://mailman.webdav.org/mailman/listinfo/perldav
You will notice that the standard
make test command invokes a large set of test procedures, but most will be skipped. This standard test is sufficient to give you a good indication that PerlDAV has installed properly.
If you'd like to see how well PerlDAV performs against a particular DAV server then you should set the URL (and username,password) in the test suite t/TestDetails.pm. Then you can run
make test again and watch the test suite perform as many operations as the server supports. Please note that the test suite will perofrm well over 200 HTTP requests to your server.
I have tested PerlDAV against IIS5, mod_dav and the Xythos WFS.
Out of the box, the test suite should NOT fail on any tests.
The test suite is the best way to test interopability between PerlDAV and other servers. I'd really like help with testing PerlDAV's interoperability. So if one or more tests fail against your server please follow the following steps:
$make test TEST_FILES=t/thetest.t TEST_VERBOSE=1 > testoutput.log
Alternatively, you could have a shot at solving the bug yourself :)
Need to convert XML::DOM to a DOM Level 2 compliant parser like XML::Gdome.
See TODO for what is left to be done.
This module is Copyright (C) 2001 by
Patrick Collins G03 Gloucester Place, Kensington Sydney, Australia
mailto:firstname.lastname@example.org Phone: +61 2 9663 4916
All rights reserved.
You may distribute this module under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file.
$Id: README.pod,v 1.9 2002/04/13 12:20:37 pcollins Exp $