---
name: "Zoidberg::PluginHash"
section: "3pm"
platform: "linux"
package: "zoidberg"
version: "0.96-1"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/Zoidberg::PluginHash"
---

# Zoidberg::PluginHash(3pm)

Magic plugin loader

## NAME

Zoidberg::PluginHash - Magic plugin loader

## SYNOPSIS

```
        use Zoidberg::PluginHash;
        my %plugins;
        tie %plugins, q/Zoidberg::PluginHash/, $shell;
        $plugins{foo}->bar();
```

## DESCRIPTION

*Documentation about Zoidberg's plugin mechanism will be provided in an other document. FIXME tell where exactly.*

This module hides some plugin loader stuff behind a transparent `"tie"`  interface. You should regard the tied hash as a simple hash with object references. You can **NOT** store objects in the hash, all stored values  are expected to be either a filename or a hash with meta data.

The `$shell` object is expected to be a hash containing at least the array `"$shell->{settings}{data_dirs}"` which contains the search path for  plugin meta data. Config data for plugins is located in  `"$shell->{settings}{plugin_name}"`. Commands and events as defined by  the plugins are stored in `"$shell->{commands}"` and `"$shell->{events}"`. These two hashes are expected to be tied with class Zoidberg::DispatchTable.

**Zoidberg::PluginHash** depends on Zoidberg::Utils for reading files of various  content types. Also it has special bindings for initialising Zoidberg::Fish objects.

## AUTHOR

Jaap Karssenberg ⎪⎪ Pardus \[Larus\] \<pardus@cpan.org\>

Copyright (c) 2003 Jaap G Karssenberg. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

## SEE ALSO

Zoidberg, Zoidberg::Utils, Zoidberg::Fish, Zoidberg::DispatchTable
