# Perlbot 1.9.4

**Category:** Standalone_Bot
**Original Author:** Andrew Burke / Jeremy Muhlich

## Description
Perlbot is a standalone IRC bot written in Perl, designed to manage channels, handle user interactions, and provide various administrative features.

## Key Features
- Manages channel operations such as joining, parting, and cycling.
- Provides authentication services for users.
- Logs IRC conversations into files.
- Offers plugin management capabilities.
- Allows admins to control the bot's behavior via commands.
- Implements logging and date conversion utilities.

## File Analysis
- **perlbot.pl** — Main script that initializes Perlbot with a configuration file and starts its operations.
- **perlbot-date-system.pl** — Script for converting eggdrop log filenames into perlbot format.
- **perlbot-from-eggdrop.pl** — Converts simple eggdrop log files to perlbot formatted logs.
- **index.pl** — Web interface script to display IRC logs.
- **plog.pl** — Script to generate HTML pages from IRC logs.
- **README** — General instructions for running Perlbot.
- **README** — Miscellaneous scripts documentation.
- **Perlbot.pm** — Core bot class with configuration and channel management functionalities.
- **config-sample.xml** — Sample configuration file for the bot.
- **config.dtd** — Document type definition for the configuration XML files.
- **Channel.pm** — Channel management module.
- **Config.pm** — Configuration handling module.
- **Logs.pm** — Logging utilities.
- **Plugin.pm** — Base class for plugins.
- **User.pm** — User management module.
- **Utils.pm** — Utility functions used throughout the bot.
- **WebServer.pm** — Web server interface to search logs.
- **Info.pm** — Plugin providing information about the bot.
- **Logger.pm** — Channel logging functionality.
- **Notes.pm** — Note-taking and retrieval plugin.
- **Opper.pm** — Automatically op valid ops as they join channels.
- **Protection.pm** — Protects ops in channels by limiting deops.
- **Redir.pm** — Message redirection between channels.
- **AdminControl.pm** — Admin control features like reloading the config and changing debug levels.
- **Authentication.pm** — Authentication services for users.
- **CTCPResponder.pm** — Responds to CTCP queries.
- **ConnectionManagement.pm** — Manages server connections, including joining and reconnecting.
- **Help.pm** — Provides help commands for plugins.
- **IRCCommands.pm** — Admin commands for managing the bot's state.
- **PluginControl.pm** — Plugin management features like loading, unloading, and reloading plugins.
- **UserAdmin.pm** — User administration via IRC.