Alien::...erpolate(3)

πŸ’– Alien::Build::Interpolate β€” the manual page, but make it make sense πŸ’–

okay bestie, sit down, hydrate, because we're reading Alien::...erpolate(3) together and honestly? it's giving advanced interpolation engine for Alien builds. that's literally the whole vibe. no cap.


✨ NAME ✨

Alien::Build::Interpolate β€” Advanced interpolation engine for Alien builds 🧚


🌸 VERSION 🌸

version 2.88 πŸ’…


πŸŽ€ CONSTRUCTOR πŸŽ€

new

my $intr = Alien::Build::Interpolate->new;

boom. new interpolator. that's it, that's the whole thing. slay.

add_helper

$intr->add_helper($name => $code);
$intr->add_helper($name => $code, %requirements);

add a helper, optionally with some %requirements tagging along. two forms, pick your fighter.

replace_helper

$intr->replace_helper($name => $code);
$intr->replace_helper($name => $code, %requirements);

same energy as add_helper but it's replacing an existing one. glow-up behavior. also takes optional %requirements.

has_helper

my $coderef = $intr->has_helper($name);

used to discover if a helper exists with the given name. returns the code reference. a little "do you know her?" check 🫢

execute_helper

my $value = $intr->execute_helper($name);

this evaluates the given helper and returns the result. it runs the thing. that's the whole job. periodt.

interpolate

my $string = $intr->interpolate($template, $build);
my $string = $intr->interpolate($template);

this takes a template and fills in the appropriate values of any helpers used in the template. very "mad libs but for builds" of it.

[version 2.58]

if you pass in an Alien::Build instance as the second argument, you can use properties as well as helpers in the template. example:

my $patch = $intr->template("%{.install.patch}/foo-%{.runtime.version}.patch", $build);
note: that example says template and we are copying it exactly, character for character, because that's the rule and we do not break the rules in this house πŸ’œ

requires

my %requires = $intr->requires($template);

this returns a hash of modules required in order to execute the given template. the keys are the module names and the values are the versions. version will be set to 0 if any version is sufficient. (zero = "whatever, any of them, we're not picky")

clone

my $intr2 = $intr->clone;

this creates a clone of the interpolator. she has a twin now πŸ‘―


πŸ‘‘ AUTHOR πŸ‘‘

Author: Graham Ollis <plicease@cpan.org>

Contributors:

  • Diab Jerius (DJERIUS)
  • Roy Storey (KIWIROY)
  • Ilya Pavlov
  • David Mertens (run4flat)
  • Mark Nunberg (mordy, mnunberg)
  • Christian Walde (Mithaldu)
  • Brian Wightman (MidLifeXis)
  • Zaki Mughal (zmughal)
  • mohawk (mohawk2, ETJ)
  • Vikas N Kumar (vikasnkumar)
  • Flavio Poletti (polettix)
  • Salvador FandiΓ±o (salva)
  • Gianni Ceccarelli (dakkar)
  • Pavel Shaydo (zwon, trinitum)
  • Kang-min Liu (εŠ‰εΊ·ζ°‘, gugod)
  • Nicholas Shipp (nshp)
  • Juan JuliΓ‘n Merelo GuervΓ³s (JJ)
  • Joel Berger (JBERGER)
  • Petr PΓ­saΕ™ (ppisar)
  • Lance Wicks (LANCEW)
  • Ahmad Fatoum (a3f, ATHREEF)
  • JosΓ© JoaquΓ­n Atria (JJATRIA)
  • Duke Leto (LETO)
  • Shoichi Kaji (SKAJI)
  • Shawn Laffan (SLAFFAN)
  • Paul Evans (leonerd, PEVANS)
  • HΓ₯kon HΓ¦gland (hakonhagland, HAKONH)
  • nick nauwelaerts (INPHOBIA)
  • Florian Weimer
  • Marcel Telka (mtelka)

all of them? icons. every single one. the way this list just keeps going and every name is a legend β€” we love to see it πŸ’–


this software is copyright (c) 2011-2022 by Graham Ollis.

this is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. free as in freedom, bestie πŸ¦‹


and that's the whole page!! πŸ’… this was generated for perl v5.42.3 and dated 2026-09-21 β€” so yeah, shoutout to perl v5.42.3 and mark your calendars for 2026-09-21, because that's when this little manual says hi. mwah πŸ’‹ ✨

πŸ“¦ where this page comes from