PPIx::QuoteLike::Token::Interpolation(3) User Contributed Perl Documentation PPIx::QuoteLike::Token::Interpolation(3)

PPIx::QuoteLike::Token::Interpolation - Represent an interpolation

This class should not be instantiated by the user. See below for public methods.

"PPIx::QuoteLike::Token::Interpolation" is a PPIx::QuoteLike::Token.

"PPIx::QuoteLike::Token::Interpolation" has no descendants.

This Perl class represents an interpolation into a quote-like string.

This class supports the following public methods in addition to those of its superclass:

my $ppi = $elem->ppi();

This convenience method returns the PPI::Document representing the content. This document should be considered read only. An exception will be thrown if PPI::Document can not be loaded.

Note that the content of the returned PPI::Document may not be the same as the content of the original "PPIx::Regexp::Token::Interpolation". This can happen because interpolated variable names may be enclosed in curly brackets, but this does not happen in normal code. For example, in "/${foo}bar/", the content of the "PPIx::Regexp::Token::Interpolation" object will be '${foo}', but the content of the "PPI::Document" will be '$foo'.

say "Interpolates $_" for $elem->variables();

NOTE that this method is discouraged, and may well be deprecated and removed. I have two problems with it. The first is that it returns variable names rather than PPI::Element objects, leaving you no idea how the variables are used. The second is that it does not properly handle things like "${^CAPTURE[0]}", and it seems infeasible to make it do so. It was originally written for the benefit of Perl::Critic::Policy::Variables::ProhibitUnusedVarsStricter, but has proven inadequate to that policy's needs.

This convenience method returns all interpolated variables. Each is returned only once, and they are returned in no particular order.

PPIx::QuoteLike::Token.

Support is by the author. Please file bug reports at https://github.com/trwyant/perl-PPIx-QuoteLike/issues or in electronic mail to the author.

Thomas R. Wyant, III harryfmudd at comcast dot net

Copyright (C) 2016-2022, 2026 by Thomas R. Wyant, III

This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5.10.0. For more details, see the full text of the licenses in the files LICENSE-Artistic and LICENSE-GPL.

This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.

2026-06-13 perl v5.42.2