CINXE.COM

B - The Perl Compiler - Perldoc Browser

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>B - The Perl Compiler - Perldoc Browser</title> <link rel="search" href="/opensearch.xml" type="application/opensearchdescription+xml" title="Perldoc Browser"> <link rel="canonical" href="https://perldoc.perl.org/B"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/stackoverflow-light.min.css" integrity="sha512-cG1IdFxqipi3gqLmksLtuk13C+hBa57a6zpWxMeoY3Q9O6ooFxq50DayCdm0QrDgZjMUn23z/0PMZlgft7Yp5Q==" crossorigin="anonymous" /> <style> body { background: #f4f4f5; color: #020202; } .navbar-dark { background-image: -webkit-linear-gradient(top, #005f85 0, #002e49 100%); background-image: -o-linear-gradient(top, #005f85 0, #002e49 100%); background-image: linear-gradient(to bottom, #005f85 0, #002e49 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff005f85', endColorstr='#ff002e49', GradientType=0); background-repeat: repeat-x; } .navbar-dark .navbar-nav .nav-link, .navbar-dark .navbar-nav .nav-link:focus { color: #fff } .navbar-dark .navbar-nav .nav-link:hover { color: #ffef68 } #wrapperlicious { margin: 0 auto; font: 0.9em 'Helvetica Neue', Helvetica, sans-serif; font-weight: normal; line-height: 1.5em; margin: 0; padding: 0; } #wrapperlicious h1 { font-size: 1.5em } #wrapperlicious h2 { font-size: 1.3em } #wrapperlicious h3 { font-size: 1.1em } #wrapperlicious h4 { font-size: 0.9em } #wrapperlicious h1, #wrapperlicious h2, #wrapperlicious h3, #wrapperlicious h4, #wrapperlicious dt { color: #020202; margin-top: 1em; margin-bottom: 1em; position: relative; font-weight: bold; } #wrapperlicious a { color: inherit; text-decoration: underline } #wrapperlicious #toc { text-decoration: none } #wrapperlicious a:hover { color: #2a2a2a } #wrapperlicious a img { border: 0 } #wrapperlicious :not(pre) > code { color: inherit; background-color: rgba(0, 0, 0, 0.04); border-radius: 3px; font: 0.9em Consolas, Menlo, Monaco, monospace; padding: 0.3em; } #wrapperlicious dd { margin: 0; margin-left: 2em; } #wrapperlicious dt { color: #2a2a2a; font-weight: bold; margin-left: 0.9em; } #wrapperlicious p { margin-bottom: 1em; margin-top: 1em; } #wrapperlicious li > p { margin-bottom: 0; margin-top: 0; } #wrapperlicious pre { border: 1px solid #c1c1c1; border-radius: 3px; font: 100% Consolas, Menlo, Monaco, monospace; margin-bottom: 1em; margin-top: 1em; } #wrapperlicious pre > code { display: block; background-color: #f6f6f6; font: 0.9em Consolas, Menlo, Monaco, monospace; line-height: 1.5em; text-align: left; white-space: pre; padding: 1em; } #wrapperlicious dl, #wrapperlicious ol, #wrapperlicious ul { margin-bottom: 1em; margin-top: 1em; } #wrapperlicious ul { list-style-type: square; } #wrapperlicious ul ul { margin-bottom: 0px; margin-top: 0px; } #footer { font-size: 0.8em; padding-top: 0.5em; text-align: center; } #more { display: inline; font-size: 0.8em; } #perldocdiv { background-color: #fff; border: 1px solid #c1c1c1; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; margin-left: auto; margin-right: auto; padding: 3em; padding-top: 1em; max-width: 960px; } #moduleversion { float: right } #wrapperlicious .leading-notice { font-style: italic; padding-left: 1em; margin-top: 1em; margin-bottom: 1em; } #wrapperlicious .permalink { display: none; left: -0.75em; position: absolute; padding-right: 0.25em; text-decoration: none; } #wrapperlicious h1:hover .permalink, #wrapperlicious h2:hover .permalink, #wrapperlicious h3:hover .permalink, #wrapperlicious h4:hover .permalink, #wrapperlicious dt:hover .permalink { display: block; } </style> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-KVNWBNT5FB"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-KVNWBNT5FB'); gtag('config', 'UA-50555-3'); </script> </head> <body> <nav class="navbar navbar-expand-md navbar-dark bg-dark justify-content-between"> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <a class="navbar-brand" href="/"><img src="/images/perl_camel_30.png" width="30" height="30" class="d-inline-block align-top" alt="Perl Camel Logo"> Perldoc Browser</a> <div class="collapse navbar-collapse" id="navbarNav"> <ul class="navbar-nav mr-auto"> <li class="nav-item dropdown text-nowrap"> <a class="nav-link dropdown-toggle" href="#" id="dropdownlink-stable" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">5.005_04</a> <div class="dropdown-menu" aria-labelledby="dropdownlink-stable"> <a class="dropdown-item" href="/B">Latest</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.40.1/B">5.40.1</a> <a class="dropdown-item" href="/5.40.0/B">5.40.0</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.38.3/B">5.38.3</a> <a class="dropdown-item" href="/5.38.2/B">5.38.2</a> <a class="dropdown-item" href="/5.38.1/B">5.38.1</a> <a class="dropdown-item" href="/5.38.0/B">5.38.0</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.36.3/B">5.36.3</a> <a class="dropdown-item" href="/5.36.2/B">5.36.2</a> <a class="dropdown-item" href="/5.36.1/B">5.36.1</a> <a class="dropdown-item" href="/5.36.0/B">5.36.0</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.34.3/B">5.34.3</a> <a class="dropdown-item" href="/5.34.2/B">5.34.2</a> <a class="dropdown-item" href="/5.34.1/B">5.34.1</a> <a class="dropdown-item" href="/5.34.0/B">5.34.0</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.32.1/B">5.32.1</a> <a class="dropdown-item" href="/5.32.0/B">5.32.0</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.30.3/B">5.30.3</a> <a class="dropdown-item" href="/5.30.2/B">5.30.2</a> <a class="dropdown-item" href="/5.30.1/B">5.30.1</a> <a class="dropdown-item" href="/5.30.0/B">5.30.0</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.28.3/B">5.28.3</a> <a class="dropdown-item" href="/5.28.2/B">5.28.2</a> <a class="dropdown-item" href="/5.28.1/B">5.28.1</a> <a class="dropdown-item" href="/5.28.0/B">5.28.0</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.26.3/B">5.26.3</a> <a class="dropdown-item" href="/5.26.2/B">5.26.2</a> <a class="dropdown-item" href="/5.26.1/B">5.26.1</a> <a class="dropdown-item" href="/5.26.0/B">5.26.0</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.24.4/B">5.24.4</a> <a class="dropdown-item" href="/5.24.3/B">5.24.3</a> <a class="dropdown-item" href="/5.24.2/B">5.24.2</a> <a class="dropdown-item" href="/5.24.1/B">5.24.1</a> <a class="dropdown-item" href="/5.24.0/B">5.24.0</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.22.4/B">5.22.4</a> <a class="dropdown-item" href="/5.22.3/B">5.22.3</a> <a class="dropdown-item" href="/5.22.2/B">5.22.2</a> <a class="dropdown-item" href="/5.22.1/B">5.22.1</a> <a class="dropdown-item" href="/5.22.0/B">5.22.0</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.20.3/B">5.20.3</a> <a class="dropdown-item" href="/5.20.2/B">5.20.2</a> <a class="dropdown-item" href="/5.20.1/B">5.20.1</a> <a class="dropdown-item" href="/5.20.0/B">5.20.0</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.18.4/B">5.18.4</a> <a class="dropdown-item" href="/5.18.3/B">5.18.3</a> <a class="dropdown-item" href="/5.18.2/B">5.18.2</a> <a class="dropdown-item" href="/5.18.1/B">5.18.1</a> <a class="dropdown-item" href="/5.18.0/B">5.18.0</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.16.3/B">5.16.3</a> <a class="dropdown-item" href="/5.16.2/B">5.16.2</a> <a class="dropdown-item" href="/5.16.1/B">5.16.1</a> <a class="dropdown-item" href="/5.16.0/B">5.16.0</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.14.4/B">5.14.4</a> <a class="dropdown-item" href="/5.14.3/B">5.14.3</a> <a class="dropdown-item" href="/5.14.2/B">5.14.2</a> <a class="dropdown-item" href="/5.14.1/B">5.14.1</a> <a class="dropdown-item" href="/5.14.0/B">5.14.0</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.12.5/B">5.12.5</a> <a class="dropdown-item" href="/5.12.4/B">5.12.4</a> <a class="dropdown-item" href="/5.12.3/B">5.12.3</a> <a class="dropdown-item" href="/5.12.2/B">5.12.2</a> <a class="dropdown-item" href="/5.12.1/B">5.12.1</a> <a class="dropdown-item" href="/5.12.0/B">5.12.0</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.10.1/B">5.10.1</a> <a class="dropdown-item" href="/5.10.0/B">5.10.0</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.8.9/B">5.8.9</a> <a class="dropdown-item" href="/5.8.8/B">5.8.8</a> <a class="dropdown-item" href="/5.8.7/B">5.8.7</a> <a class="dropdown-item" href="/5.8.6/B">5.8.6</a> <a class="dropdown-item" href="/5.8.5/B">5.8.5</a> <a class="dropdown-item" href="/5.8.4/B">5.8.4</a> <a class="dropdown-item" href="/5.8.3/B">5.8.3</a> <a class="dropdown-item" href="/5.8.2/B">5.8.2</a> <a class="dropdown-item" href="/5.8.1/B">5.8.1</a> <a class="dropdown-item" href="/5.8.0/B">5.8.0</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.6.2/B">5.6.2</a> <a class="dropdown-item" href="/5.6.1/B">5.6.1</a> <a class="dropdown-item" href="/5.6.0/B">5.6.0</a> <div class="dropdown-divider"></div> <a class="dropdown-item active" href="/5.005_04/B">5.005_04</a> <a class="dropdown-item" href="/5.005_03/B">5.005_03</a> <a class="dropdown-item" href="/5.005_02/B">5.005_02</a> <a class="dropdown-item" href="/5.005_01/B">5.005_01</a> <a class="dropdown-item" href="/5.005/B">5.005</a> </div> </li> <li class="nav-item dropdown text-nowrap"> <a class="nav-link dropdown-toggle" href="#" id="dropdownlink-dev" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dev</a> <div class="dropdown-menu" aria-labelledby="dropdownlink-dev"> <a class="dropdown-item" href="/blead/B">blead</a> <a class="dropdown-item" href="/5.41.9/B">5.41.9</a> <a class="dropdown-item" href="/5.41.8/B">5.41.8</a> <a class="dropdown-item" href="/5.41.7/B">5.41.7</a> <a class="dropdown-item" href="/5.41.6/B">5.41.6</a> <a class="dropdown-item" href="/5.41.5/B">5.41.5</a> <a class="dropdown-item" href="/5.41.4/B">5.41.4</a> <a class="dropdown-item" href="/5.41.3/B">5.41.3</a> <a class="dropdown-item" href="/5.41.2/B">5.41.2</a> <a class="dropdown-item" href="/5.41.1/B">5.41.1</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.40.1-RC1/B">5.40.1-RC1</a> <a class="dropdown-item" href="/5.40.0-RC2/B">5.40.0-RC2</a> <a class="dropdown-item" href="/5.40.0-RC1/B">5.40.0-RC1</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.39.10/B">5.39.10</a> <a class="dropdown-item" href="/5.39.9/B">5.39.9</a> <a class="dropdown-item" href="/5.39.8/B">5.39.8</a> <a class="dropdown-item" href="/5.39.7/B">5.39.7</a> <a class="dropdown-item" href="/5.39.6/B">5.39.6</a> <a class="dropdown-item" href="/5.39.5/B">5.39.5</a> <a class="dropdown-item" href="/5.39.4/B">5.39.4</a> <a class="dropdown-item" href="/5.39.3/B">5.39.3</a> <a class="dropdown-item" href="/5.39.2/B">5.39.2</a> <a class="dropdown-item" href="/5.39.1/B">5.39.1</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.38.3-RC1/B">5.38.3-RC1</a> </div> </li> <li class="nav-item dropdown text-nowrap"> <a class="nav-link dropdown-toggle" href="#" id="dropdownlink-nav" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Documentation</a> <div class="dropdown-menu" aria-labelledby="dropdownlink-nav"> <a class="dropdown-item" href="/5.005_04/perl">Perl</a> <a class="dropdown-item" href="/5.005_04/perlintro">Intro</a> <a class="dropdown-item" href="/5.005_04/perl#Tutorials">Tutorials</a> <a class="dropdown-item" href="/5.005_04/perlfaq">FAQs</a> <a class="dropdown-item" href="/5.005_04/perl#Reference-Manual">Reference</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.005_04/perlop">Operators</a> <a class="dropdown-item" href="/5.005_04/functions">Functions</a> <a class="dropdown-item" href="/5.005_04/variables">Variables</a> <a class="dropdown-item" href="/5.005_04/modules">Modules</a> <a class="dropdown-item" href="/5.005_04/perlutil">Utilities</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="/5.005_04/perldelta">Release Notes</a> <a class="dropdown-item" href="/5.005_04/perlcommunity">Community</a> <a class="dropdown-item" href="/5.005_04/perlhist">History</a> </div> </li> </ul> <ul class="navbar-nav"> <script> function set_expand (expand) { var perldocdiv = document.getElementById('perldocdiv'); var width = window.getComputedStyle(perldocdiv).getPropertyValue('max-width'); var expanded = (width == '' || width == 'none') ? true : false; if (expand === null) { expand = !expanded; } if ((expand && !expanded) || (!expand && expanded)) { perldocdiv.style.setProperty('max-width', expand ? 'none' : '960px'); var button_classlist = document.getElementById('content-expand-button').classList; if (expand) { button_classlist.add('btn-light'); button_classlist.remove('btn-outline-light'); } else { button_classlist.add('btn-outline-light'); button_classlist.remove('btn-light'); } } return expand; } function toggle_expand () { var expand = set_expand(null); document.cookie = 'perldoc_expand=' + (expand ? 1 : 0) + '; path=/; expires=Tue, 19 Jan 2038 03:14:07 UTC'; } function read_expand () { return document.cookie.split(';').some(function (item) { return item.indexOf('perldoc_expand=1') >= 0 }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function () { if (read_expand()) { set_expand(true); } }); } else if (read_expand()) { set_expand(true); } </script> <button id="content-expand-button" type="button" class="btn btn-outline-light d-none d-lg-inline-block mr-4" onclick="toggle_expand()">Expand</button> </ul> <form class="form-inline" method="get" action="/5.005_04/search"> <input class="form-control mr-3" type="search" name="q" placeholder="Search" aria-label="Search" value=""> </form> </div> </nav> <div id="wrapperlicious" class="container-fluid"> <div id="perldocdiv"> <div id="links"> <a href="/5.005_04/B">B</a> <div id="more"> (<a href="/5.005_04/B.txt">source</a>, <a href="https://metacpan.org/pod/B">CPAN</a>) </div> </div> <div class="leading-notice"> You are viewing the version of this documentation from Perl 5.005_04. <a href="/B">View the latest version</a> </div> <h1><a id="toc">CONTENTS</a></h1> <ul> <li> <a class="text-decoration-none" href="#NAME">NAME</a> </li> <li> <a class="text-decoration-none" href="#SYNOPSIS">SYNOPSIS</a> </li> <li> <a class="text-decoration-none" href="#DESCRIPTION">DESCRIPTION</a> </li> <li> <a class="text-decoration-none" href="#OVERVIEW-OF-CLASSES">OVERVIEW OF CLASSES</a> <ul> <li> <a class="text-decoration-none" href="#SV-RELATED-CLASSES">SV-RELATED CLASSES</a> </li> <li> <a class="text-decoration-none" href="#B::SV-METHODS">B::SV METHODS</a> </li> <li> <a class="text-decoration-none" href="#B::IV-METHODS">B::IV METHODS</a> </li> <li> <a class="text-decoration-none" href="#B::NV-METHODS">B::NV METHODS</a> </li> <li> <a class="text-decoration-none" href="#B::RV-METHODS">B::RV METHODS</a> </li> <li> <a class="text-decoration-none" href="#B::PV-METHODS">B::PV METHODS</a> </li> <li> <a class="text-decoration-none" href="#B::PVMG-METHODS">B::PVMG METHODS</a> </li> <li> <a class="text-decoration-none" href="#B::MAGIC-METHODS">B::MAGIC METHODS</a> </li> <li> <a class="text-decoration-none" href="#B::PVLV-METHODS">B::PVLV METHODS</a> </li> <li> <a class="text-decoration-none" href="#B::BM-METHODS">B::BM METHODS</a> </li> <li> <a class="text-decoration-none" href="#B::GV-METHODS">B::GV METHODS</a> </li> <li> <a class="text-decoration-none" href="#B::IO-METHODS">B::IO METHODS</a> </li> <li> <a class="text-decoration-none" href="#B::AV-METHODS">B::AV METHODS</a> </li> <li> <a class="text-decoration-none" href="#B::CV-METHODS">B::CV METHODS</a> </li> <li> <a class="text-decoration-none" href="#B::HV-METHODS">B::HV METHODS</a> </li> <li> <a class="text-decoration-none" href="#OP-RELATED-CLASSES">OP-RELATED CLASSES</a> </li> <li> <a class="text-decoration-none" href="#B::OP-METHODS">B::OP METHODS</a> </li> <li> <a class="text-decoration-none" href="#B::UNOP-METHOD">B::UNOP METHOD</a> </li> <li> <a class="text-decoration-none" href="#B::BINOP-METHOD">B::BINOP METHOD</a> </li> <li> <a class="text-decoration-none" href="#B::LOGOP-METHOD">B::LOGOP METHOD</a> </li> <li> <a class="text-decoration-none" href="#B::CONDOP-METHODS">B::CONDOP METHODS</a> </li> <li> <a class="text-decoration-none" href="#B::LISTOP-METHOD">B::LISTOP METHOD</a> </li> <li> <a class="text-decoration-none" href="#B::PMOP-METHODS">B::PMOP METHODS</a> </li> <li> <a class="text-decoration-none" href="#B::SVOP-METHOD">B::SVOP METHOD</a> </li> <li> <a class="text-decoration-none" href="#B::GVOP-METHOD">B::GVOP METHOD</a> </li> <li> <a class="text-decoration-none" href="#B::PVOP-METHOD">B::PVOP METHOD</a> </li> <li> <a class="text-decoration-none" href="#B::LOOP-METHODS">B::LOOP METHODS</a> </li> <li> <a class="text-decoration-none" href="#B::COP-METHODS">B::COP METHODS</a> </li> </ul> </li> <li> <a class="text-decoration-none" href="#FUNCTIONS-EXPORTED-BY-B">FUNCTIONS EXPORTED BY B</a> </li> <li> <a class="text-decoration-none" href="#AUTHOR">AUTHOR</a> </li> </ul> <h1 id="NAME"><a class="permalink" href="#NAME">#</a>NAME</h1> <p>B - The Perl Compiler</p> <h1 id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">#</a>SYNOPSIS</h1> <pre><code>use B;</code></pre> <h1 id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">#</a>DESCRIPTION</h1> <p>The <code>B</code> module supplies classes which allow a Perl program to delve into its own innards. It is the module used to implement the &quot;backends&quot; of the Perl compiler. Usage of the compiler does not require knowledge of this module: see the <i>O</i> module for the user-visible part. The <code>B</code> module is of use to those who want to write new compiler backends. This documentation assumes that the reader knows a fair amount about perl&#39;s internals including such things as SVs, OPs and the internal symbol table and syntax tree of a program.</p> <h1 id="OVERVIEW-OF-CLASSES"><a class="permalink" href="#OVERVIEW-OF-CLASSES">#</a><a id="OVERVIEW"></a>OVERVIEW OF CLASSES</h1> <p>The C structures used by Perl&#39;s internals to hold SV and OP information (PVIV, AV, HV, ..., OP, SVOP, UNOP, ...) are modelled on a class hierarchy and the <code>B</code> module gives access to them via a true object hierarchy. Structure fields which point to other objects (whether types of SV or types of OP) are represented by the <code>B</code> module as Perl objects of the appropriate class. The bulk of the <code>B</code> module is the methods for accessing fields of these structures. Note that all access is read-only: you cannot modify the internals by using this module.</p> <h2 id="SV-RELATED-CLASSES"><a class="permalink" href="#SV-RELATED-CLASSES">#</a><a id="SV1"></a>SV-RELATED CLASSES</h2> <p>B::IV, B::NV, B::RV, B::PV, B::PVIV, B::PVNV, B::PVMG, B::BM, B::PVLV, B::AV, B::HV, B::CV, B::GV, B::FM, B::IO. These classes correspond in the obvious way to the underlying C structures of similar names. The inheritance hierarchy mimics the underlying C &quot;inheritance&quot;. Access methods correspond to the underlying C macros for field access, usually with the leading &quot;class indication&quot; prefix removed (Sv, Av, Hv, ...). The leading prefix is only left in cases where its removal would cause a clash in method name. For example, <code>GvREFCNT</code> stays as-is since its abbreviation would clash with the &quot;superclass&quot; method <code>REFCNT</code> (corresponding to the C function <code>SvREFCNT</code>).</p> <h2 id="B::SV-METHODS"><a class="permalink" href="#B::SV-METHODS">#</a><a id="B"></a>B::SV METHODS</h2> <dl> <dt id="REFCNT"><a class="permalink" href="#REFCNT">#</a>REFCNT</dt> <dd> </dd> <dt id="FLAGS"><a class="permalink" href="#FLAGS">#</a>FLAGS</dt> <dd> </dd> </dl> <h2 id="B::IV-METHODS"><a class="permalink" href="#B::IV-METHODS">#</a><a id="B1"></a>B::IV METHODS</h2> <dl> <dt id="IV"><a class="permalink" href="#IV">#</a>IV</dt> <dd> </dd> <dt id="IVX"><a class="permalink" href="#IVX">#</a>IVX</dt> <dd> </dd> <dt id="needs64bits"><a class="permalink" href="#needs64bits">#</a>needs64bits</dt> <dd> </dd> <dt id="packiv"><a class="permalink" href="#packiv">#</a>packiv</dt> <dd> </dd> </dl> <h2 id="B::NV-METHODS"><a class="permalink" href="#B::NV-METHODS">#</a><a id="B2"></a>B::NV METHODS</h2> <dl> <dt id="NV"><a class="permalink" href="#NV">#</a>NV</dt> <dd> </dd> <dt id="NVX"><a class="permalink" href="#NVX">#</a>NVX</dt> <dd> </dd> </dl> <h2 id="B::RV-METHODS"><a class="permalink" href="#B::RV-METHODS">#</a><a id="B3"></a>B::RV METHODS</h2> <dl> <dt id="RV"><a class="permalink" href="#RV">#</a>RV</dt> <dd> </dd> </dl> <h2 id="B::PV-METHODS"><a class="permalink" href="#B::PV-METHODS">#</a><a id="B4"></a>B::PV METHODS</h2> <dl> <dt id="PV"><a class="permalink" href="#PV">#</a>PV</dt> <dd> </dd> </dl> <h2 id="B::PVMG-METHODS"><a class="permalink" href="#B::PVMG-METHODS">#</a><a id="B5"></a>B::PVMG METHODS</h2> <dl> <dt id="MAGIC"><a class="permalink" href="#MAGIC">#</a>MAGIC</dt> <dd> </dd> <dt id="SvSTASH"><a class="permalink" href="#SvSTASH">#</a>SvSTASH</dt> <dd> </dd> </dl> <h2 id="B::MAGIC-METHODS"><a class="permalink" href="#B::MAGIC-METHODS">#</a><a id="B6"></a>B::MAGIC METHODS</h2> <dl> <dt id="MOREMAGIC"><a class="permalink" href="#MOREMAGIC">#</a>MOREMAGIC</dt> <dd> </dd> <dt id="PRIVATE"><a class="permalink" href="#PRIVATE">#</a>PRIVATE</dt> <dd> </dd> <dt id="TYPE"><a class="permalink" href="#TYPE">#</a>TYPE</dt> <dd> </dd> <dt id="FLAGS1"><a class="permalink" href="#FLAGS1">#</a>FLAGS</dt> <dd> </dd> <dt id="OBJ"><a class="permalink" href="#OBJ">#</a>OBJ</dt> <dd> </dd> <dt id="PTR"><a class="permalink" href="#PTR">#</a>PTR</dt> <dd> </dd> </dl> <h2 id="B::PVLV-METHODS"><a class="permalink" href="#B::PVLV-METHODS">#</a><a id="B7"></a>B::PVLV METHODS</h2> <dl> <dt id="TARGOFF"><a class="permalink" href="#TARGOFF">#</a>TARGOFF</dt> <dd> </dd> <dt id="TARGLEN"><a class="permalink" href="#TARGLEN">#</a>TARGLEN</dt> <dd> </dd> <dt id="TYPE1"><a class="permalink" href="#TYPE1">#</a>TYPE</dt> <dd> </dd> <dt id="TARG"><a class="permalink" href="#TARG">#</a>TARG</dt> <dd> </dd> </dl> <h2 id="B::BM-METHODS"><a class="permalink" href="#B::BM-METHODS">#</a><a id="B8"></a>B::BM METHODS</h2> <dl> <dt id="USEFUL"><a class="permalink" href="#USEFUL">#</a>USEFUL</dt> <dd> </dd> <dt id="PREVIOUS"><a class="permalink" href="#PREVIOUS">#</a>PREVIOUS</dt> <dd> </dd> <dt id="RARE"><a class="permalink" href="#RARE">#</a>RARE</dt> <dd> </dd> <dt id="TABLE"><a class="permalink" href="#TABLE">#</a>TABLE</dt> <dd> </dd> </dl> <h2 id="B::GV-METHODS"><a class="permalink" href="#B::GV-METHODS">#</a><a id="B9"></a>B::GV METHODS</h2> <dl> <dt id="NAME1"><a class="permalink" href="#NAME1">#</a>NAME</dt> <dd> </dd> <dt id="STASH"><a class="permalink" href="#STASH">#</a>STASH</dt> <dd> </dd> <dt id="SV"><a class="permalink" href="#SV">#</a>SV</dt> <dd> </dd> <dt id="IO"><a class="permalink" href="#IO">#</a>IO</dt> <dd> </dd> <dt id="FORM"><a class="permalink" href="#FORM">#</a>FORM</dt> <dd> </dd> <dt id="AV"><a class="permalink" href="#AV">#</a>AV</dt> <dd> </dd> <dt id="HV"><a class="permalink" href="#HV">#</a>HV</dt> <dd> </dd> <dt id="EGV"><a class="permalink" href="#EGV">#</a>EGV</dt> <dd> </dd> <dt id="CV"><a class="permalink" href="#CV">#</a>CV</dt> <dd> </dd> <dt id="CVGEN"><a class="permalink" href="#CVGEN">#</a>CVGEN</dt> <dd> </dd> <dt id="LINE"><a class="permalink" href="#LINE">#</a>LINE</dt> <dd> </dd> <dt id="FILEGV"><a class="permalink" href="#FILEGV">#</a>FILEGV</dt> <dd> </dd> <dt id="GvREFCNT"><a class="permalink" href="#GvREFCNT">#</a>GvREFCNT</dt> <dd> </dd> <dt id="FLAGS2"><a class="permalink" href="#FLAGS2">#</a>FLAGS</dt> <dd> </dd> </dl> <h2 id="B::IO-METHODS"><a class="permalink" href="#B::IO-METHODS">#</a><a id="B10"></a>B::IO METHODS</h2> <dl> <dt id="LINES"><a class="permalink" href="#LINES">#</a>LINES</dt> <dd> </dd> <dt id="PAGE"><a class="permalink" href="#PAGE">#</a>PAGE</dt> <dd> </dd> <dt id="PAGE_LEN"><a class="permalink" href="#PAGE_LEN">#</a>PAGE_LEN</dt> <dd> </dd> <dt id="LINES_LEFT"><a class="permalink" href="#LINES_LEFT">#</a>LINES_LEFT</dt> <dd> </dd> <dt id="TOP_NAME"><a class="permalink" href="#TOP_NAME">#</a>TOP_NAME</dt> <dd> </dd> <dt id="TOP_GV"><a class="permalink" href="#TOP_GV">#</a>TOP_GV</dt> <dd> </dd> <dt id="FMT_NAME"><a class="permalink" href="#FMT_NAME">#</a>FMT_NAME</dt> <dd> </dd> <dt id="FMT_GV"><a class="permalink" href="#FMT_GV">#</a>FMT_GV</dt> <dd> </dd> <dt id="BOTTOM_NAME"><a class="permalink" href="#BOTTOM_NAME">#</a>BOTTOM_NAME</dt> <dd> </dd> <dt id="BOTTOM_GV"><a class="permalink" href="#BOTTOM_GV">#</a>BOTTOM_GV</dt> <dd> </dd> <dt id="SUBPROCESS"><a class="permalink" href="#SUBPROCESS">#</a>SUBPROCESS</dt> <dd> </dd> <dt id="IoTYPE"><a class="permalink" href="#IoTYPE">#</a>IoTYPE</dt> <dd> </dd> <dt id="IoFLAGS"><a class="permalink" href="#IoFLAGS">#</a>IoFLAGS</dt> <dd> </dd> </dl> <h2 id="B::AV-METHODS"><a class="permalink" href="#B::AV-METHODS">#</a><a id="B11"></a>B::AV METHODS</h2> <dl> <dt id="FILL"><a class="permalink" href="#FILL">#</a>FILL</dt> <dd> </dd> <dt id="MAX"><a class="permalink" href="#MAX">#</a>MAX</dt> <dd> </dd> <dt id="OFF"><a class="permalink" href="#OFF">#</a>OFF</dt> <dd> </dd> <dt id="ARRAY"><a class="permalink" href="#ARRAY">#</a>ARRAY</dt> <dd> </dd> <dt id="AvFLAGS"><a class="permalink" href="#AvFLAGS">#</a>AvFLAGS</dt> <dd> </dd> </dl> <h2 id="B::CV-METHODS"><a class="permalink" href="#B::CV-METHODS">#</a><a id="B12"></a>B::CV METHODS</h2> <dl> <dt id="STASH1"><a class="permalink" href="#STASH1">#</a>STASH</dt> <dd> </dd> <dt id="START"><a class="permalink" href="#START">#</a>START</dt> <dd> </dd> <dt id="ROOT"><a class="permalink" href="#ROOT">#</a>ROOT</dt> <dd> </dd> <dt id="GV"><a class="permalink" href="#GV">#</a>GV</dt> <dd> </dd> <dt id="FILEGV1"><a class="permalink" href="#FILEGV1">#</a>FILEGV</dt> <dd> </dd> <dt id="DEPTH"><a class="permalink" href="#DEPTH">#</a>DEPTH</dt> <dd> </dd> <dt id="PADLIST"><a class="permalink" href="#PADLIST">#</a>PADLIST</dt> <dd> </dd> <dt id="OUTSIDE"><a class="permalink" href="#OUTSIDE">#</a>OUTSIDE</dt> <dd> </dd> <dt id="XSUB"><a class="permalink" href="#XSUB">#</a>XSUB</dt> <dd> </dd> <dt id="XSUBANY"><a class="permalink" href="#XSUBANY">#</a>XSUBANY</dt> <dd> </dd> <dt id="CvFLAGS"><a class="permalink" href="#CvFLAGS">#</a>CvFLAGS</dt> <dd> </dd> </dl> <h2 id="B::HV-METHODS"><a class="permalink" href="#B::HV-METHODS">#</a><a id="B13"></a>B::HV METHODS</h2> <dl> <dt id="FILL1"><a class="permalink" href="#FILL1">#</a>FILL</dt> <dd> </dd> <dt id="MAX1"><a class="permalink" href="#MAX1">#</a>MAX</dt> <dd> </dd> <dt id="KEYS"><a class="permalink" href="#KEYS">#</a>KEYS</dt> <dd> </dd> <dt id="RITER"><a class="permalink" href="#RITER">#</a>RITER</dt> <dd> </dd> <dt id="NAME2"><a class="permalink" href="#NAME2">#</a>NAME</dt> <dd> </dd> <dt id="PMROOT"><a class="permalink" href="#PMROOT">#</a>PMROOT</dt> <dd> </dd> <dt id="ARRAY1"><a class="permalink" href="#ARRAY1">#</a>ARRAY</dt> <dd> </dd> </dl> <h2 id="OP-RELATED-CLASSES"><a class="permalink" href="#OP-RELATED-CLASSES">#</a><a id="OP"></a>OP-RELATED CLASSES</h2> <p>B::OP, B::UNOP, B::BINOP, B::LOGOP, B::CONDOP, B::LISTOP, B::PMOP, B::SVOP, B::GVOP, B::PVOP, B::CVOP, B::LOOP, B::COP. These classes correspond in the obvious way to the underlying C structures of similar names. The inheritance hierarchy mimics the underlying C &quot;inheritance&quot;. Access methods correspond to the underlying C structre field names, with the leading &quot;class indication&quot; prefix removed (op_).</p> <h2 id="B::OP-METHODS"><a class="permalink" href="#B::OP-METHODS">#</a><a id="B14"></a>B::OP METHODS</h2> <dl> <dt id="next"><a class="permalink" href="#next">#</a>next</dt> <dd> </dd> <dt id="sibling"><a class="permalink" href="#sibling">#</a>sibling</dt> <dd> </dd> <dt id="ppaddr"><a class="permalink" href="#ppaddr">#</a>ppaddr</dt> <dd> <p>This returns the function name as a string (e.g. pp_add, pp_rv2av).</p> </dd> <dt id="desc"><a class="permalink" href="#desc">#</a>desc</dt> <dd> <p>This returns the op description from the global C PL_op_desc array (e.g. &quot;addition&quot; &quot;array deref&quot;).</p> </dd> <dt id="targ"><a class="permalink" href="#targ">#</a>targ</dt> <dd> </dd> <dt id="type"><a class="permalink" href="#type">#</a>type</dt> <dd> </dd> <dt id="seq"><a class="permalink" href="#seq">#</a>seq</dt> <dd> </dd> <dt id="flags"><a class="permalink" href="#flags">#</a>flags</dt> <dd> </dd> <dt id="private"><a class="permalink" href="#private">#</a>private</dt> <dd> </dd> </dl> <h2 id="B::UNOP-METHOD"><a class="permalink" href="#B::UNOP-METHOD">#</a><a id="B15"></a>B::UNOP METHOD</h2> <dl> <dt id="first"><a class="permalink" href="#first">#</a>first</dt> <dd> </dd> </dl> <h2 id="B::BINOP-METHOD"><a class="permalink" href="#B::BINOP-METHOD">#</a><a id="B16"></a>B::BINOP METHOD</h2> <dl> <dt id="last"><a class="permalink" href="#last">#</a>last</dt> <dd> </dd> </dl> <h2 id="B::LOGOP-METHOD"><a class="permalink" href="#B::LOGOP-METHOD">#</a><a id="B17"></a>B::LOGOP METHOD</h2> <dl> <dt id="other"><a class="permalink" href="#other">#</a>other</dt> <dd> </dd> </dl> <h2 id="B::CONDOP-METHODS"><a class="permalink" href="#B::CONDOP-METHODS">#</a><a id="B18"></a>B::CONDOP METHODS</h2> <dl> <dt id="true"><a class="permalink" href="#true">#</a>true</dt> <dd> </dd> <dt id="false"><a class="permalink" href="#false">#</a>false</dt> <dd> </dd> </dl> <h2 id="B::LISTOP-METHOD"><a class="permalink" href="#B::LISTOP-METHOD">#</a><a id="B19"></a>B::LISTOP METHOD</h2> <dl> <dt id="children"><a class="permalink" href="#children">#</a>children</dt> <dd> </dd> </dl> <h2 id="B::PMOP-METHODS"><a class="permalink" href="#B::PMOP-METHODS">#</a><a id="B20"></a>B::PMOP METHODS</h2> <dl> <dt id="pmreplroot"><a class="permalink" href="#pmreplroot">#</a>pmreplroot</dt> <dd> </dd> <dt id="pmreplstart"><a class="permalink" href="#pmreplstart">#</a>pmreplstart</dt> <dd> </dd> <dt id="pmnext"><a class="permalink" href="#pmnext">#</a>pmnext</dt> <dd> </dd> <dt id="pmregexp"><a class="permalink" href="#pmregexp">#</a>pmregexp</dt> <dd> </dd> <dt id="pmflags"><a class="permalink" href="#pmflags">#</a>pmflags</dt> <dd> </dd> <dt id="pmpermflags"><a class="permalink" href="#pmpermflags">#</a>pmpermflags</dt> <dd> </dd> <dt id="precomp"><a class="permalink" href="#precomp">#</a>precomp</dt> <dd> </dd> </dl> <h2 id="B::SVOP-METHOD"><a class="permalink" href="#B::SVOP-METHOD">#</a><a id="B21"></a>B::SVOP METHOD</h2> <dl> <dt id="sv"><a class="permalink" href="#sv">#</a>sv</dt> <dd> </dd> </dl> <h2 id="B::GVOP-METHOD"><a class="permalink" href="#B::GVOP-METHOD">#</a><a id="B22"></a>B::GVOP METHOD</h2> <dl> <dt id="gv"><a class="permalink" href="#gv">#</a>gv</dt> <dd> </dd> </dl> <h2 id="B::PVOP-METHOD"><a class="permalink" href="#B::PVOP-METHOD">#</a><a id="B23"></a>B::PVOP METHOD</h2> <dl> <dt id="pv"><a class="permalink" href="#pv">#</a>pv</dt> <dd> </dd> </dl> <h2 id="B::LOOP-METHODS"><a class="permalink" href="#B::LOOP-METHODS">#</a><a id="B24"></a>B::LOOP METHODS</h2> <dl> <dt id="redoop"><a class="permalink" href="#redoop">#</a>redoop</dt> <dd> </dd> <dt id="nextop"><a class="permalink" href="#nextop">#</a>nextop</dt> <dd> </dd> <dt id="lastop"><a class="permalink" href="#lastop">#</a>lastop</dt> <dd> </dd> </dl> <h2 id="B::COP-METHODS"><a class="permalink" href="#B::COP-METHODS">#</a><a id="B25"></a>B::COP METHODS</h2> <dl> <dt id="label"><a class="permalink" href="#label">#</a>label</dt> <dd> </dd> <dt id="stash"><a class="permalink" href="#stash">#</a>stash</dt> <dd> </dd> <dt id="filegv"><a class="permalink" href="#filegv">#</a>filegv</dt> <dd> </dd> <dt id="cop_seq"><a class="permalink" href="#cop_seq">#</a>cop_seq</dt> <dd> </dd> <dt id="arybase"><a class="permalink" href="#arybase">#</a>arybase</dt> <dd> </dd> <dt id="line"><a class="permalink" href="#line">#</a>line</dt> <dd> </dd> </dl> <h1 id="FUNCTIONS-EXPORTED-BY-B"><a class="permalink" href="#FUNCTIONS-EXPORTED-BY-B">#</a><a id="FUNCTIONS"></a>FUNCTIONS EXPORTED BY <code>B</code></h1> <p>The <code>B</code> module exports a variety of functions: some are simple utility functions, others provide a Perl program with a way to get an initial &quot;handle&quot; on an internal object.</p> <dl> <dt id="main_cv"><a class="permalink" href="#main_cv">#</a>main_cv</dt> <dd> <p>Return the (faked) CV corresponding to the main part of the Perl program.</p> </dd> <dt id="init_av"><a class="permalink" href="#init_av">#</a>init_av</dt> <dd> <p>Returns the AV object (i.e. in class B::AV) representing INIT blocks.</p> </dd> <dt id="main_root"><a class="permalink" href="#main_root">#</a>main_root</dt> <dd> <p>Returns the root op (i.e. an object in the appropriate B::OP-derived class) of the main part of the Perl program.</p> </dd> <dt id="main_start"><a class="permalink" href="#main_start">#</a>main_start</dt> <dd> <p>Returns the starting op of the main part of the Perl program.</p> </dd> <dt id="comppadlist"><a class="permalink" href="#comppadlist">#</a>comppadlist</dt> <dd> <p>Returns the AV object (i.e. in class B::AV) of the global comppadlist.</p> </dd> <dt id="sv_undef"><a class="permalink" href="#sv_undef">#</a>sv_undef</dt> <dd> <p>Returns the SV object corresponding to the C variable <code>sv_undef</code>.</p> </dd> <dt id="sv_yes"><a class="permalink" href="#sv_yes">#</a>sv_yes</dt> <dd> <p>Returns the SV object corresponding to the C variable <code>sv_yes</code>.</p> </dd> <dt id="sv_no"><a class="permalink" href="#sv_no">#</a>sv_no</dt> <dd> <p>Returns the SV object corresponding to the C variable <code>sv_no</code>.</p> </dd> <dt id="walkoptree(OP,-METHOD)"><a class="permalink" href="#walkoptree(OP,-METHOD)">#</a><a id="walkoptree"></a><a id="walkoptree-OP-METHOD"></a>walkoptree(OP, METHOD)</dt> <dd> <p>Does a tree-walk of the syntax tree based at OP and calls METHOD on each op it visits. Each node is visited before its children. If <code>walkoptree_debug</code> (q.v.) has been called to turn debugging on then the method <code>walkoptree_debug</code> is called on each op before METHOD is called.</p> </dd> <dt id="walkoptree_debug(DEBUG)"><a class="permalink" href="#walkoptree_debug(DEBUG)">#</a><a id="walkoptree_debug"></a><a id="walkoptree_debug-DEBUG"></a>walkoptree_debug(DEBUG)</dt> <dd> <p>Returns the current debugging flag for <code>walkoptree</code>. If the optional DEBUG argument is non-zero, it sets the debugging flag to that. See the description of <code>walkoptree</code> above for what the debugging flag does.</p> </dd> <dt id="walksymtable(SYMREF,-METHOD,-RECURSE)"><a class="permalink" href="#walksymtable(SYMREF,-METHOD,-RECURSE)">#</a><a id="walksymtable"></a><a id="walksymtable-SYMREF-METHOD-RECURSE"></a>walksymtable(SYMREF, METHOD, RECURSE)</dt> <dd> <p>Walk the symbol table starting at SYMREF and call METHOD on each symbol visited. When the walk reached package symbols &quot;Foo::&quot; it invokes RECURSE and only recurses into the package if that sub returns true.</p> </dd> <dt id="svref_2object(SV)"><a class="permalink" href="#svref_2object(SV)">#</a><a id="svref_2object"></a><a id="svref_2object-SV"></a>svref_2object(SV)</dt> <dd> <p>Takes any Perl variable and turns it into an object in the appropriate B::OP-derived or B::SV-derived class. Apart from functions such as <code>main_root</code>, this is the primary way to get an initial &quot;handle&quot; on a internal perl data structure which can then be followed with the other access methods.</p> </dd> <dt id="ppname(OPNUM)"><a class="permalink" href="#ppname(OPNUM)">#</a><a id="ppname"></a><a id="ppname-OPNUM"></a>ppname(OPNUM)</dt> <dd> <p>Return the PP function name (e.g. &quot;pp_add&quot;) of op number OPNUM.</p> </dd> <dt id="hash(STR)"><a class="permalink" href="#hash(STR)">#</a><a id="hash"></a><a id="hash-STR"></a>hash(STR)</dt> <dd> <p>Returns a string in the form &quot;0x...&quot; representing the value of the internal hash function used by perl on string STR.</p> </dd> <dt id="cast_I32(I)"><a class="permalink" href="#cast_I32(I)">#</a><a id="cast_I32"></a><a id="cast_I32-I"></a>cast_I32(I)</dt> <dd> <p>Casts I to the internal I32 type used by that perl.</p> </dd> <dt id="minus_c"><a class="permalink" href="#minus_c">#</a>minus_c</dt> <dd> <p>Does the equivalent of the <code>-c</code> command-line option. Obviously, this is only useful in a BEGIN block or else the flag is set too late.</p> </dd> <dt id="cstring(STR)"><a class="permalink" href="#cstring(STR)">#</a><a id="cstring"></a><a id="cstring-STR"></a>cstring(STR)</dt> <dd> <p>Returns a double-quote-surrounded escaped version of STR which can be used as a string in C source code.</p> </dd> <dt id="class(OBJ)"><a class="permalink" href="#class(OBJ)">#</a><a id="class"></a><a id="class-OBJ"></a>class(OBJ)</dt> <dd> <p>Returns the class of an object without the part of the classname preceding the first &quot;::&quot;. This is used to turn &quot;B::UNOP&quot; into &quot;UNOP&quot; for example.</p> </dd> <dt id="threadsv_names"><a class="permalink" href="#threadsv_names">#</a>threadsv_names</dt> <dd> <p>In a perl compiled for threads, this returns a list of the special per-thread threadsv variables.</p> </dd> <dt id="byteload_fh(FILEHANDLE)"><a class="permalink" href="#byteload_fh(FILEHANDLE)">#</a><a id="byteload_fh"></a><a id="byteload_fh-FILEHANDLE"></a>byteload_fh(FILEHANDLE)</dt> <dd> <p>Load the contents of FILEHANDLE as bytecode. See documentation for the <b>Bytecode</b> module in <i>B::Backend</i> for how to generate bytecode.</p> </dd> </dl> <h1 id="AUTHOR"><a class="permalink" href="#AUTHOR">#</a>AUTHOR</h1> <p>Malcolm Beattie, <code>mbeattie@sable.ox.ac.uk</code></p> </div> <div id="footer"> <p>Perldoc Browser is maintained by Dan Book (<a href="https://metacpan.org/author/DBOOK">DBOOK</a>). Please contact him via the <a href="https://github.com/Grinnz/perldoc-browser/issues">GitHub issue tracker</a> or <a href="mailto:dbook@cpan.org">email</a> regarding any issues with the site itself, search, or rendering of documentation.</p> <p>The Perl documentation is maintained by the Perl 5 Porters in the development of Perl. Please contact them via the <a href="https://github.com/Perl/perl5/issues">Perl issue tracker</a>, the <a href="https://lists.perl.org/list/perl5-porters.html">mailing list</a>, or <a href="https://kiwiirc.com/client/irc.perl.org/p5p">IRC</a> to report any issues with the contents or format of the documentation.</p> </div> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.slim.min.js" integrity="sha512-/DXTXr6nQodMUiq+IUJYCt2PPOUjrHJ9wFrqpJ3XkgPNOZVfMok7cRw6CSxyCQxXn6ozlESsSh1/sMCTF1rL/g==" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.1/umd/popper.min.js" integrity="sha512-ubuT8Z88WxezgSqf3RLuNi5lmjstiJcyezx34yIU2gAHonIi27Na7atqzUZCOoY4CExaoFumzOsFQ2Ch+I/HCw==" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script> <script src="/js/highlight.pack.js"></script> <script>hljs.highlightAll();</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10