# Perlbot 1.9.5

**Category:** Standalone_Bot
**Original Author:** burke@bitflood.org / jmuhlich@bitflood.org

## Description
Perlbot is a standalone IRC bot written in Perl, designed to manage channels and provide various services such as logging, user management, and plugin handling.

## Key Features
- Manages channel operations including joining, parting, and cycling.
- Provides authentication for users with password protection and hostmask configuration.
- Supports loading and unloading of plugins.
- Offers a web interface to search logs and view bot status.
- Automatically opes valid ops as they join channels.
- Logs IRC activity in a structured format.

## File Analysis
- **feedback-agent.pl** — Collects information from users for statistical purposes.
- **perlbot.pl** — Main entry point of the Perlbot application.
- **perlbot-date-system.pl** — Converts eggdrop log filenames to perlbot format.
- **perlbot-from-eggdrop.pl** — Converts simple eggdrop log files to perlbot format.
- **index.pl** — Web interface for searching and displaying IRC logs.
- **plog.pl** — Generates HTML pages from Perlbot log files.
- **Perlbot.pm** — Core module providing the bot's functionality.
- **config-sample.xml** — Sample configuration file in XML format.
- **config.dtd** — Document type definition for config.xml.
- **Channel.pm** — Manages channel-related operations and logging.
- **Config.pm** — Handles configuration loading and parsing.
- **LogFile.pm** — Manages log files for specific channels.
- **Plugin.pm** — Base class for plugins, providing hooks for various events.
- **User.pm** — Manages user information including nicknames and hostmasks.
- **Utils.pm** — Utility functions used throughout the bot.
- **WebServer.pm** — Handles web server functionality to serve logs and status pages.
- **Info.pm** — Provides information about the bot, such as version and author details.
- **Logger.pm** — Logs IRC activity for specific events.
- **Notes.pm** — Stores and retrieves notes for users.
- **Opper.pm** — Automatically ops valid ops when they join channels.
- **Protection.pm** — Protects ops in channels by limiting deops.
- **Redir.pm** — Manages message redirection between channels.
- **AdminControl.pm** — Allows admins to control some bot features, such as reloading the config and changing debug levels.
- **Authentication.pm** — Provides authentication services for users.
- **CTCPResponder.pm** — Responds to CTCP queries like ping.
- **ConnectionManagement.pm** — Manages server connections including joining channels and reconnecting.
- **Help.pm** — Provides help functionality for commands and plugins.
- **IRCCommands.pm** — Allows admins to control the bot, such as changing nicknames or quitting IRC.
- **PluginControl.pm** — Manages loading, unloading, and reloading of plugins.
- **UserAdmin.pm** — Administers user configurations.