Module...:Plugin(3pm)
π NAME π
Module::Starter::Plugin β the whole tea on how Module::Starter plugins actually work, bestie. This is a 3pm page, so it's user contributed Perl documentation, and it's here to hold your hand through writing your own plugins. π«Ά
β¨ VERSION β¨
version 1.80 β yes she's serving, and yes she's current. π
πΈ DESCRIPTION πΈ
Okay so listen. This doc is your lil guide to writing plugins for Module::Starter. And ngl, as you can probably already tell, it is not the most comprehensive thing ever written. Like, it's giving "notes app at 2am." π But it should still hand you enough info to write plugins that genuinely work, so don't stress. Because honestly? Module::Starter's guts are nice and simple. Lowkey iconic of her. β¨
π Module::Starter->import π
So Module::Starter gives you an import method, and the arguments you pass it are the plugins β in the exact order you want them loaded. Order matters, bestie, do not play. π
If you pass no plugins at all, then Module::Starter::Simple gets loaded β and only Module::Starter::Simple. She's the default main character. π
By default, the modules you give are required and then arranged into an is-a chain. Which means: Module::Starter subclasses the last plugin you gave, that one subclasses the second-to-last, and so on up the line until you hit the first plugin you gave, which becomes the base class. A whole little family tree, no cap. π
But!! If one of your plugins provides a load_plugins method, then everything shifts: the remaining plugins still waiting to be loaded get passed straight to that method, and that method is now the one responsible for loading the rest. She took over the aux cord. π§
This whole architecture means plugins basically come in two flavours:
π§ engine plugins π§
An engine is a plugin that stands all by herself β she implements the public create_distro method plus literally all the functionality needed to actually carry that implementation out. The only engine that ships with Module::Starter is Module::Starter::Simple, and the author isn't even sure any more of them are gonna show up in the wild any time soon. So likeβ¦ she might be the only one, periodt. π
π¦ plain old plugins π¦
Every other plugin is designed to subclass an engine and mess with its behaviour β exactly the way a normal subclass alters its parent class's vibe. These plugins might add features to Module::Starter engines, or they might just hand out general APIs for other plugins to come exploit (like Module::Starter::Plugin::Template). Sharing is caring. π«Ά
The template plugin is a simple lil example of a plugin that alters an engine so it can accept even more plugins. Other plugins like template will probably get written in the near future, and plugins that exploit the API provided by Module::Starter::Plugin::Template will be out there on the CPAN. It's giving ecosystem. π±
π AUTHOR π
Ricardo SIGNES "<rjbs at cpan.org>" β shoutout to the legend. π
β COPYRIGHT β
Copyright 2005, Ricardo SIGNES. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. π
ok that's the whole page, bestie!! π this wasModule...:Plugin(3pm)from the User Contributed Perl Documentation, generated byperl v5.40.1, dated2026-01-23. mwah, go write some plugins, iykyk π π
π¦ where this page comes from
- ubuntu resolute: libmodule-starter-perl 1.800+dfsg-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libmodule-starter-perl 1.800+dfsg-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms