NAME Data::Foswiki - Read and Write Foswiki topics VERSION Version 0.02 SYNOPSIS Quickly read and write Foswiki topics into a hash use Data::Foswiki; #read my $fh; open($fh, '<', '/var/lib/foswiki/data/System/FAQSimultaneousEdits.txt') or die 'open failure'; my @topic_text = <$fh>; close($fh); my $topic = Data::Foswiki::Test2::deserialise(@topic_text); $topic->{TOPICINFO}{author} = 'NewUser'; $topic->{PARENT}{name} = 'WebHome'; $topic->{TEXT} = "Some new text\n\n".$topic->{TEXT}; undef $topic->{TOPICMOVED}; $topic->{FIELD}{TopicTitle}{attributes} = 'H'; #add a new field that is not part of the form definition - if edited within foswiki, it willbe removed #but its useful for importing $topic->{FIELD}{NewField}{value} = 'test'; #write open($fh, '>', '/var/lib/foswiki/data/System/FAQNewFaq.txt') or die 'write failure'; print $fh Data::Foswiki::Test::serialise($topic); close($fh); EXPORT A list of functions that can be exported. You can delete this section if you don't export anything, such as for a purely object-oriented module. SUBROUTINES/METHODS deserialise($text|@stringarray) -> $hash_ref Parse a string, or array of strings and convert into a hash of the Foswiki topic's data (apparently Perl can be faster reading a file into an array) if you pass in an undef / empty string, you will get undef back serialise($hashref) -> string Serialise into a foswiki 'embedded' formatted string, ready for writing to disk. Note: this does not take care of updating the topic revision and date data AUTHOR Sven Dowideit, "" BUGS Please report any bugs or feature requests to "bug-data-foswiki at rt.cpan.org", or through the web interface at . I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. SUPPORT Foswiki support can be found in the #foswiki irc channel on , or from SvenDowideit ACKNOWLEDGEMENTS TO DO make an XS version, and try a few different approaches to parsing and then benchmark them this would mean making this module into a facade to the other implementations. is it faster not to modify the array? (just keep start and end Text indexes?) LICENSE AND COPYRIGHT Copyright 2012 Sven Dowideit SvenDowideit@fosiki.com. This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. See http://dev.perl.org/licenses/ for more information.