ExtUti...r::Plan(3pm)

πŸ’– NAME πŸ’–

ExtUtils::Builder::Plan β€” An ExtUtils::Builder Plan, literally. This page is filed in the User Contributed Perl Documentation as ExtUti...r::Plan(3pm), and it's here to make the whole thing make sense. πŸ¦‹

✨ VERSION ✨

version 0.020 β€” yes, that's the number, no cap. πŸŽ€

🌸 SYNOPSIS 🌸

Okay so picture this: you're making a Frobnicate package and you want it to hand back a plan. The whole little handshake goes like this:

package Frobnicate;
sub plan {
    my %nodes = ...;
    return ExtUtils::Builder::Plan->new(
        nodes => \%nodes,
    );
}

my $plan = Frobnicate->plan(@args);

# various consumption methods
$plan->run('foo');
say $_->target for $plan->nodes;

That's the vibe. πŸ’…

🧚 DESCRIPTION 🧚

An object of this class describes a process. It contains one or more nodes. This is enough to describe whole building processes β€” in fact its run method is a tiny make engine. Iconic. πŸ”₯

πŸ›  ATTRIBUTES πŸ› 

nodes

This is the set of all nodes in this plan. That's it, that's the attribute, and honestly? It's doing a lot. πŸ’–

πŸ’… METHODS πŸ’…

run($target, %options)

This runs the process. Similar to make, it checks for each node if it is necessary to run, and if not skips it. $target may either be a single string or an array ref of strings for the targets to run. πŸƒβ€β™€οΈπŸ’¨

node($target)

Returns the node for the specified $target. Simple, clean, slay. ✨

node_names()

Returns the names of all the nodes. All of them. The whole roster. πŸ‘‘

merge($other)

This merges this plan with another, and returns the new plan.

⚠️ Vibe check: each entry may only exist on one side of the merge β€” that rule is doing heavy lifting, fr fr. πŸ’€

phonies()

This returns the names of all phony targets. Phony names only, bestie β€” that's the assignment. 🫢

🌈 AUTHOR 🌈

Leon Timmermans <fawaka@gmail.com> β€” the icon who wrote this. πŸ‘‘

This software is copyright (c) 2013 by Leon Timmermans.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. πŸ’–


xoxo, your Perl bestie πŸ’‹ β€” this page is from the User Contributed Perl Documentation, built with perl v5.40.1, dated 2026-02-23, and filed under ExtUti...r::Plan(3pm). Byeee! ✨

πŸ“¦ where this page comes from