ExtUtil...AN::Tool(3)
π ExtUtils::Builder::CPAN::Tool(3) β the whole vibe π
okay bestie, listen. this is a page from section 3 of the manual, and it's literally called ExtUtils::Builder::CPAN::Tool. no cap, it's the blueprint. the moment where the build script protocol gets its glow-up. π¦
β¨ NAME β¨
ExtUtils::Builder::CPAN::Tool β a base implementation for CPAN build scripts. that's the whole assignment. it's the foundation, the main character, the thing everything else gets built on top of. π
πΈ VERSION πΈ
version 0.020 β that's the one, that's the number, don't @ me.
π SYNOPSIS π
here's the little ritual you do, verbatim, no edits, no substitutions:
my $planner = ExtUtils::Builder::Planner->new;
$planner->create_phony($_) for qw/code manify dynamic/;
$planner->create_phony('all', qw/code manify dynamic/);
$planner->load_extension('ExtUtils::Builder::CPAN::Tool');
$planner->new_scope->run_dsl($_) for glob 'planner/*.pl';
my $plan = $planner->materialize;
$plan->run('all');
look at her go. planner created, phonies made, extension loaded, DSL run over every planner/*.pl, plan materialized, and then all goes brrr. iconic. π₯
π§ DESCRIPTION π§
so what is this? it provides a base implementation of the CPAN build script protocol. that's the tea. β
and the specializations that are already out there in the wild? they're Dist::Build and ExtUtils::Builder::MakeMaker. those are the known ones, iykyk. π
π DELEGATES π
these are the little delegates, the supporting cast, the ones who carry the whole plot:
β config
the ExtUtils::Config (or compatible) object for this build. that's her. she holds the settings. π«Ά
β meta
a CPAN::Meta object representing the metadata for this distribution. and by default? it just loads the META.json sitting right there in the current directory. lowkey convenient, highkey iconic. π
β distribution
the name of the distribution. just the name. that's it. short and sweet. β¨
β version
the version of the distribution β and yes, as a version object. not a string, not vibes, a real object. π
β main_module
the main module of the distribution. the one in the front of the group photo. πΈ
β perl_path
the path to the perl executable. where's perl at? right here bestie. πͺ
β is_os(@os_names)
this one returns true if the current operating system matches any of the listed ones. you pass in @os_names, it tells you if we're on one of them. simple. clean. slay. β
β is_os_type($os_type)
returns true if the type of the OS matches $os_type. and the legal values? "Unix", "Windows", and "VMS". those three. that's the whole list. no extra options, no secret fourth one. periodt. π«
β verbose
the requested verbosity. by default this is a stub that always returns false. so likeβ¦ default quiet mode. π€«
β uninst
the value of the "uninst" command line argument. and by default? another stub, always returns false. π
β jobs
the requested number of jobs for this build. by default it's a stub that always returns 1. one job. just the one. lonely but employed. π
β pureperl_only
the value of the pureperl_only argument. by default it's a stub that always returns false. π
β new_planner.
this creates a new planner, sharing a configuration object with the current one. that's the move. new planner, same config, shared energy. π
π AUTHOR π
Leon Timmermans <fawaka@gmail.com> β the author, the legend, the one who wrote this. π
π COPYRIGHT AND LICENSE π
this software is copyright (c) 2013 by Leon Timmermans.
and it's free software! you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. that's the deal, that's the license, no cap. π«Ά
k so real talk, if you're reading this on perl v5.42.2 and the date says 2026-03-22, you're holding the exact right version of the page. mwah. take care of her. π β¨π
π¦ where this page comes from
- fedora 43: perl-ExtUtils-Builder 0.020-1.fc43 Β· GPL-1.0-or-later OR Artistic-1.0-Perl
- fedora 44: perl-ExtUtils-Builder 0.020-1.fc44 Β· GPL-1.0-or-later OR Artistic-1.0-Perl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms