After watching a top Pythonista spend so much energy on writing code to do this in Python that it warranted multiple blog entries, I couldnââ¬â¢t resist trying my hand at it in Perl. The result:
#!/usr/bin/perl use strict; use warnings; use File::Find; use File::Basename; use XML::Writer; my $w = XML::Writer->new( OUTPUT => \$_, DATA_MODE => 1, DATA_INDENT => 2 ); $w->xmlDecl( "utf-8" ); find( { preprocess => sub { $w->startTag( "directory", name => basename $File::Find::dir ); @_ }, wanted => sub { $w->emptyTag( "file", name => $_ ) if -f }, postprocess => sub { $w->endTag }, }, $ARGV[ 0 ] ); $w->end(); print;
I think I know why Oââ¬â¢Reillyââ¬â¢s Perl and XML weighs in at just a mere 224 pages. :-)