---
name: "Vend::Interpolate"
section: "3pm"
platform: "linux"
package: "interchange"
version: "5.7.7-2"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/Vend::Interpolate"
---

# Vend::Interpolate(3pm)

## NAME

Vend::Interpolate -- Interchange tag interpolation routines

## SYNOPSIS

(no external use)

## DESCRIPTION

The Vend::Interpolate contains the majority of the Interchange Tag Language implementation rouines. Historically, it contained the entire tag language implementation for MiniVend, accounting for its name.

It contains most of the handler routines pointed to by Vend::Parse, which accepts the parsing output of Vend::Parser. (Vend::Parser was originally based on HTML::Parser 1.x).

There are two interpolative parsers in Vend::Interpolate, *iterate\_array\_list()* and *iterate\_hash\_list()* -- these routines parse the lists used in the widely employed \[loop ..\], \[search-region ...\], \[item-list\], and \[query ..\] ITL tag constructs.

This module makes heavy use of precompiled regexes. You will notice variables being used in the regular expression constructs. For example, `$All` is a a synonym for `"(?s:.)*"`, `$Some` is equivalent to `"(?s:.)*?"`, etc. This is not only for clarity of the regular expression, but for speed.
