---
name: "MediaWiki::DumpFile::FastPages"
section: "3pm"
platform: "linux"
package: "libmediawiki-dumpfile-perl"
version: "0.2.2-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/MediaWiki::DumpFile::FastPages"
---

# MediaWiki::DumpFile::FastPages(3pm)

Fastest way to parse a page dump file

## NAME

MediaWiki::DumpFile::FastPages - Fastest way to parse a page dump file

## SYNOPSIS

```
  use MediaWiki::DumpFile::FastPages;

  $pages = MediaWiki::DumpFile::FastPages->new($file);
  $pages = MediaWiki::DumpFile::FastPages->new(\*FH);

  while(($title, $text) = $pages->next) {
    print "Title: $title\n";
    print "Text: $text\n";
  }
```

## ABOUT

This is a subclass of MediaWiki::DumpFile::Pages that configures it to run in fast mode and uses a custom iterator that dispenses with the duck-typed MediaWiki::DumpFile::Pages::Page object that fast mode uses giving a slight processing speed boost.

See the MediaWiki::DumpFile::Pages documentation for information about fast mode.

## METHODS

All of the methods of MediaWiki::DumpFile::Pages are also available on this subclass.

### new

This is the constructor for this package. It is called with a single parameter: the location of a MediaWiki pages dump file or a reference to an already open file handle.

### next

Returns a two element list where the first element is the article title and the second element is the article text. Returns an empty list when there are no more pages available.

## AUTHOR

Tyler Riddle, `"<triddle at gmail.com>"`

## BUGS

Please see MediaWiki::DumpFile for information on how to report bugs in  this software.

## HISTORY

This package originally started life as a very limited hack using only  XML::LibXML::Reader and seeking to text and title nodes in the document. Implementing a parser for the full document was a daunting task and this package sat in the hopes that other people might find it useful.

Because XML::TreePuller can expose the underlying XML::LibXML::Reader object and sync itself back up after the cursor was moved out from underneath it, I was able to integrate the logic from this package into the main ::Pages parser.

## COPYRIGHT & LICENSE

Copyright 2009 "Tyler Riddle".

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.
