When a categoriser isn't sufficient for your needs, you can write an Lire::DlfAnalyser which gets complete control on the analysis process. The main difference with at categoriser is that the dst_schema method will contain refer to a derived schema instead of an extended schema.
The core of the analyser is done in the analyse method that takes a reference to the store onto which data will be analysed and to a Lire::DlfAnalyserProcess callback object which should be use to write new DLF records and report errors. The method also receives the plugin configuration data. The analyser should create a Lire::DlfQuery to select the records necessary for its analysis.
The doc/examples in the source distribution contains the a boiler plate for witing an Analyser.