InglésFrancésEspañol

icono de página de OnWorks

perlintern - Online en la nube

Ejecute perlintern en el proveedor de alojamiento gratuito de OnWorks sobre Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el comando perlintern que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


perlintern: documentación autogenerada de funciones de Perl puramente internas

DESCRIPCIÓN


Este archivo es la documentación generada automáticamente de funciones en el intérprete de Perl que son
documentados utilizando el formato de documentación interna de Perl, pero no están marcados como parte de la
API de Perl. En otras palabras, they están no for use in extensiones!

Tiempo de compilación alcance manos


BhkENTRADA
NOTA: esta función es experimental y puede cambiar o eliminarse sin previo aviso.

Devuelve una entrada de la estructura BHK. lo cual es un token de preprocesador que indica
qué entrada devolver. Si no se establece el indicador apropiado, esto devolverá NULL.
El tipo de valor devuelto depende de la entrada que solicite.

void * BhkENTRY (BHK * hk, que)

BhkBANDERAS
NOTA: esta función es experimental y puede cambiar o eliminarse sin previo aviso.

Devuelve las banderas de BHK.

U32 BhkFLAGS (BHK * hk)

CALL_BLOCK_HOOKS
NOTA: esta función es experimental y puede cambiar o eliminarse sin previo aviso.

Llame a todos los ganchos de bloque registrados para el tipo lo cual. lo cual es un preprocesamiento
simbólico; el tipo de arg depende lo cual.

void CALL_BLOCK_HOOKS (que, arg)

Personalizado telecomunicaciones


núcleo_prototipo
Esta función asigna el prototipo de la función principal nombrada a "sv", oa un
nuevo mortal SV si "sv" es NULL. Devuelve el "sv" modificado, o NULL si el núcleo
La función no tiene prototipo. "código" es un código devuelto por "palabra clave ()". Debería
no ser igual a 0.

SV * core_prototype (SV * sv, const char * nombre,
código int const,
int * constante opnum)

CV Manipulación Funciones


docatch Verifica los casos 0 o 3 de cur_env.je_ret, solo se usa dentro de un contexto de evaluación.

0 se usa como continuar dentro de eval,

3 se usa para un dado atrapado por una evaluación interna - continuar bucle interno

Ver cop.h: je_mustcatch, cuando se establece en cualquier nivel de ejecución en TRUE, significa que las operaciones de evaluación deben
establezca un jmpenv local para manejar las trampas de excepción.

OP * docatch (OP * o)

CV referencia cuenta Cv EXTERIOR


CvDÉBILEXTERIOR
Cada CV tiene un puntero, "CvOUTSIDE ()", a su CV que lo encierra léxicamente (si lo hay).
Dado que los punteros a subprototipos anónimos se almacenan en las ranuras del pad "&", es una
posible obtener una referencia circular, con el padre apuntando al niño y
viceversa. Para evitar la consiguiente pérdida de memoria, no incrementamos la referencia
recuento del CV apuntado por "CvOUTSIDE" en el one soluciones y ejemplo que el
padre tiene una ranura de almohadilla "&" apuntando hacia nosotros. En este caso, configuramos el
Bandera "CvWEAKOUTSIDE" en el niño. Esto nos permite determinar bajo qué
circunstancias debemos disminuir el recuento del padre al liberar el
niño.

Existe una complicación adicional con los subs anónimos sin cierre (es decir, aquellos que
no se refiera a ningún léxico fuera de ese sub). En este caso, el anónimo
el prototipo se comparte en lugar de ser clonado. Esto tiene como consecuencia que el
el padre puede ser liberado mientras todavía hay hijos activos, p. ej.

COMIENZO {$ a = sub {eval '$ x'}}

En este caso, el BEGIN se libera inmediatamente después de la ejecución ya que no hay
referencias activas a él: el subprototipo anon tiene configurado "CvWEAKOUTSIDE" ya que es
no es un cierre, y $ a apunta al mismo CV, por lo que no contribuye a BEGIN's
refcount tampoco. Cuando se ejecuta $ a, "eval '$ x'" provoca la cadena de
Se debe seguir "CvOUTSIDE" y se accede al BEGIN liberado.

Para evitar esto, cada vez que se libera un CV y ​​su pad asociado, cualquier entrada "&" en
la almohadilla se eliminan explícitamente de la almohadilla, y si el recuento de ref.
anon sub sigue siendo positivo, entonces el "CvOUTSIDE" de ese niño está configurado para apuntar a su
abuelo. Esto solo ocurrirá en el caso específico de una falta de cierre.
anon prototipo que tiene una o más referencias activas (como $ a arriba).

Otra cosa a considerar es que un CV puede ser simplemente indefinido en lugar de
liberado, por ejemplo, "undef & foo". En este caso, su recuento puede no haber llegado a cero, pero
todavía borramos su pad y su "CvROOT", etc. Dado que varios niños todavía
tienen su "CvOUTSIDE" apuntando a este CV indefinido, nosotros mantenemos su propio "CvOUTSIDE"
por el momento, de modo que la cadena de ámbitos léxicos no se rompa. Por ejemplo,
lo siguiente debería imprimir 123:

mi $ x = 123;
sub tmp {sub {eval '$ x'}}
my $ a = tmp ();
undef & tmp;
imprimir $ a -> ();

bool CvWEAKOUTSIDE (CV * cv)

Incrustar Funciones


cv_dump volca el contenido de un CV

void cv_dump (CV * cv, const char * título)

cv_forget_slab
Cuando un CV tiene un recuento de referencias en su losa (CvSLABBED), es responsable de
asegurándose de que esté libre. (Por lo tanto, dos CV nunca deberían tener un recuento de referencias en
la misma losa.) El CV solo necesita hacer referencia a la losa durante la compilación. Una vez
está compilado y adjunto CvROOT, ha terminado su trabajo, por lo que puede olvidar el
losa.

void cv_forget_slab (CV * cv)

hacer_dump_pad
Volcar el contenido de una lista de pad

void do_dump_pad (nivel I32, archivo PerlIO *,
PADLIST * lista de pad, int completo)

padlist_dup
Duplica una libreta.

PADLIST * padlist_dup (PADLIST * srcpad,
CLONE_PARAMS * param)

padnamelist_dup
Duplica una lista de nombres de pad.

PADNAMELIST * padnamelist_dup (PADNAMELIST * srcpad,
CLONE_PARAMS * param)

padname_dup
Duplica un nombre de pad.

PADNAME * padname_dup (PADNAME * src, CLONE_PARAMS * param)

pad_alloc_name
Asigna un lugar en la plataforma de compilación actual (a través de "pad_alloc" en perlapi) y
luego almacena un nombre para esa entrada. nombre se adopta y se convierte en la entrada del nombre; eso
ya debe contener la cadena de nombre. escribir ourtash y el
Se agrega la bandera "padadd_STATE" a nombre . Ninguno de los otros tratamientos de
"pad_add_name_pvn" en perlapi está hecho. Devuelve el desplazamiento del pad asignado.
espacio.

PADOFFSET pad_alloc_name (PADNAME * nombre, banderas U32,
HV * typestash, HV * ourtash)

pad_block_start
Actualice las variables de estado de compilación del pad al ingresar a un nuevo bloque.

void pad_block_start (int completo)

pad_check_dup
Compruebe si hay declaraciones duplicadas: informe cualquiera de:

* a my en el ámbito actual con el mismo nombre;
* un nuestro (en cualquier lugar del pad) con el mismo nombre y el
mismo alijo que C

"is_our" indica que el nombre a verificar es una declaración 'nuestra'.

void pad_check_dup (PADNAME * nombre, banderas U32,
const HV * ourtash)

pad_findlex
Encuentre un léxico con nombre en cualquier lugar de una cadena de pads anidados. Agregue entradas falsas en el
almohadillas internas si se encuentra en una externa.

Devuelve el desplazamiento en el pad inferior de la lex o la falsa lex. cv es el CV en
cuál para iniciar la búsqueda, y seq es el cop_seq actual con el que comparar. Si
warn es verdadera, imprima las advertencias adecuadas. Los valores de retorno out_ * vars, y así
son indicadores de dónde se deben almacenar los valores devueltos. out_capture, si no
null, solicita que se capture la instancia más interna del léxico; out_name es
establezca el nombre de la almohadilla coincidente más interno o el nombre de la almohadilla falsa; out_flags devuelve el
banderas normalmente asociadas con el campo PARENT_FAKELEX_FLAGS de un nombre de pad falso.

Tenga en cuenta que pad_findlex () es recursivo; se repite en la cadena de CV, luego viene
retroceda, agregando entradas falsas a medida que avanza. Tiene que ser así porque falso
los nombres en prototipos anon tienen que almacenar en xlow el índice en el pad padre.

PADOFFSET pad_findlex (const char * namepv,
STRLEN namelen, banderas U32,
const CV * cv, U32 seq, int warn,
SV ** out_capture,
PADNAME ** out_name,
int * out_flags)

pad_fixup_inner_anons
Para cualquier CV anon en el pad, cambie CvOUTSIDE de ese CV de old_cv a new_cv si
necesario. Necesario cuando un CV recién compilado debe trasladarse a un CV preexistente
estructura

void pad_fixup_inner_anons (PADLIST * padlist,
CV * antiguo_cv, CV * nuevo_cv)

almohadilla_gratis
Libere el SV en el offset po en el pad actual.

void pad_free (PADOFFSET po)

pad_leavemy
Limpieza al final del alcance durante la compilación: establezca el número máximo de secuencia para léxicos en
este alcance y advierte de cualquier léxico que nunca se introdujo.

void pad_leavemy ()

pad_push
Empuje un nuevo marco de pad en la lista de pad, a menos que ya haya un pad a esta profundidad,
en cuyo caso no se moleste en crear uno nuevo. Luego dale a la nueva almohadilla una @_ en
ranura cero.

void pad_push (PADLIST * padlist, profundidad int)

pad_reset
Marcar todos los temporales actuales para reutilizarlos

vacío pad_reset ()

pad_swipe
Abandone el tmp en el pad actual en offset po y reemplácelo por uno nuevo.

void pad_swipe (PADOFFSET po, bool refadjust)

GV Funciones


gv_try_downgrade
NOTA: esta función es experimental y puede cambiar o eliminarse sin previo aviso.

Si el typeglob "gv" se puede expresar de manera más sucinta, al tener algo diferente
que un GV real en su lugar en el escondite, reemplácelo con la forma optimizada.
Los requisitos básicos para esto son que "gv" sea un typeglob real, sea lo suficientemente
ordinario, y solo se hace referencia a él desde su paquete. Esta función está destinada a ser
se utiliza cuando se ha buscado un GV en parte para ver qué había allí, lo que
actualización, pero según lo que se encontró, resulta que el GV real no es
requerido después de todo.

Si "gv" es un typeglob completamente vacío, se elimina del alijo.

Si "gv" es un typeglob que contiene solo una sub constante suficientemente ordinaria, el
typeglob se reemplaza con un marcador de posición de referencia escalar que de manera más compacta
representa lo mismo.

void gv_try_downgrade (GV * gv)

Hash Manipulación Funciones


hv_ename_añadir
Agrega un nombre a la lista interna de nombres efectivos de un alijo. Consulte "hv_ename_delete".

Esto se llama cuando se asigna un alijo a una nueva ubicación en la tabla de símbolos.

void hv_ename_add (HV * hv, const char * name, U32 len,
Banderas U32)

hv_ename_delete
Elimina un nombre de la lista interna de nombres efectivos de un alijo. Si este es el
nombre devuelto por "HvENAME", luego otro nombre en la lista tomará su lugar
("HvENAME" lo usará).

Esto se llama cuando se elimina un alijo de la tabla de símbolos.

void hv_ename_delete (HV * hv, const char * nombre,
U32 len, banderas U32)

refcounted_he_chain_2hv
Genera y devuelve un "HV *" que representa el contenido de un "refcounted_he"
cadena. banderas actualmente no se utiliza y debe ser cero.

HV * refcounted_he_chain_2hv (
const struct refcounted_he * c, banderas U32
)

refcounted_he_fetch_pv
Como "refcounted_he_fetch_pvn", pero toma una cadena terminada en nulo en lugar de una
par cuerda / longitud.

SV * refcounted_he_fetch_pv (
const struct refcounted_he * chain,
const char * clave, hash U32, banderas U32
)

refcounted_he_fetch_pvn
Busque a lo largo de una cadena "refcounted_he" una entrada con la clave especificada por clavepv
Keylen. Si banderas tiene el bit "REFCOUNTED_HE_KEY_UTF8" establecido, los octetos clave son
interpretados como UTF-8, de lo contrario se interpretan como Latin-1. hachís es un
hash precalculado de la cadena de claves, o cero si no ha sido precalculado.
Devuelve un escalar mortal que representa el valor asociado con la clave, o
& PL_sv_placeholder si no hay ningún valor asociado con la clave.

SV * refcounted_he_fetch_pvn (
const struct refcounted_he * chain,
const char * keypv, STRLEN keylen, U32 hash,
Banderas U32
)

refcounted_he_fetch_pvs
Como "refcounted_he_fetch_pvn", pero toma una cadena literal en lugar de una
par cadena / longitud, y sin hash precalculado.

SV * refcounted_he_fetch_pvs (
const struct refcounted_he * chain,
const char * clave, banderas U32
)

refcounted_he_fetch_sv
Como "refcounted_he_fetch_pvn", pero toma un escalar de Perl en lugar de una cadena / longitud
par.

SV * refcounted_he_fetch_sv (
const struct refcounted_he * chain, SV * key,
Hash U32, banderas U32
)

refcounted_he_free
Reduce el recuento de referencias de un "refcounted_he" en uno. Si la referencia
cuenta llega a cero, la memoria de la estructura se libera, lo que (recursivamente) provoca una
reducción del recuento de referencias de su padre "refcounted_he". Es seguro pasar un
puntero nulo a esta función: no se produce ninguna acción en este caso.

void refcounted_he_free (struct refcounted_he * he)

refcounted_he_inc
Incrementar el recuento de referencias de un "refcounted_he". El puntero al
También se devuelve "refcounted_he". Es seguro pasar un puntero nulo a este
función: no se produce ninguna acción y se devuelve un puntero nulo.

struct refcounted_he * refcounted_he_inc (
struct refcounted_he * he
)

refcounted_he_new_pv
Como "refcounted_he_new_pvn", pero toma una cadena terminada en nulo en lugar de una
par cuerda / longitud.

struct refcounted_he * refcounted_he_new_pv (
struct refcounted_he * parent,
const char * clave, hash U32,
Valor SV *, banderas U32
)

refcounted_he_new_pvn
Crea un nuevo "refcounted_he". Consiste en un solo par clave / valor y un
referencia a una cadena "refcounted_he" existente (que puede estar vacía), y por lo tanto
forma una cadena más larga. Cuando se usa la cadena más larga, el nuevo par clave / valor toma
precedencia sobre cualquier entrada para la misma clave más adelante a lo largo de la cadena.

La nueva clave está especificada por clavepv Keylen. Si banderas tiene la
"REFCOUNTED_HE_KEY_UTF8" conjunto de bits, los octetos clave se interpretan como UTF-8,
de lo contrario, se interpretan como Latin-1. hachís es un hash precalculado de la clave
cadena, o cero si no se ha calculado previamente.

propuesta de es el valor escalar que se almacenará para esta clave. propuesta de es copiado por esto
función, que por lo tanto no se apropia de ninguna referencia a ella, y más tarde
los cambios en el escalar no se reflejarán en el valor visible en el
"refcounted_he". Los tipos complejos de escalares no se almacenarán con referencial
integridad, pero será coaccionado a cuerdas. propuesta de puede ser nulo o
& PL_sv_placeholder para indicar que no se asociará ningún valor con la clave;
esto, como con cualquier valor no nulo, tiene prioridad sobre la existencia de un valor
para la llave más a lo largo de la cadena.

con el futuro bebé apunta al resto de la cadena "refcounted_he" que se adjuntará al nuevo
"refcounted_he". Esta función toma posesión de una referencia a con el futuro bebéy
devuelve una referencia al nuevo "refcounted_he".

struct refcounted_he * refcounted_he_new_pvn (
struct refcounted_he * parent,
const char * keypv,
STRLEN keylen, hash U32,
Valor SV *, banderas U32
)

refcounted_he_new_pvs
Como "refcounted_he_new_pvn", pero toma una cadena literal en lugar de una
par cadena / longitud, y sin hash precalculado.

struct refcounted_he * refcounted_he_new_pvs (
struct refcounted_he * parent,
const char * clave, SV * valor,
Banderas U32
)

refcounted_he_new_sv
Como "refcounted_he_new_pvn", pero toma un escalar de Perl en lugar de una cadena / longitud
par.

struct refcounted_he * refcounted_he_new_sv (
struct refcounted_he * parent,
SV * clave, hash U32, valor SV *,
Banderas U32
)

IO Funciones


inicio_glob
NOTA: esta función es experimental y puede cambiar o eliminarse sin previo aviso.

Función llamada por "do_readline" para generar un glob (o hacer el glob dentro de perl en
VMS). Este código solía estar en línea, pero ahora Perl usa "File :: Glob" este glob
miniperl solo usa starter durante el proceso de construcción. Alejarlo se encoge
pp_hot.c; Reducir pp_hot.c ayuda a acelerar Perl.

PerlIO * start_glob (SV * tmpglob, IO * io)

Lexer interfaz.


validar_proto
NOTA: esta función es experimental y puede cambiar o eliminarse sin previo aviso.

Esta función realiza una verificación de sintaxis en un prototipo, "proto". Si "advertir" es
Es cierto, cualquier carácter ilegal o corchetes que no coincidan desencadenará un protocolo ilegal.
advertencias, declarando que fueron detectadas en el prototipo de "nombre".

El valor devuelto es "verdadero" si se trata de un prototipo válido y "falso" si no lo es.
independientemente de si "advertir" era "verdadero" o "falso".

Tenga en cuenta que "NULL" es un "proto" válido y siempre devolverá "true".

NOTA: la forma perl_ de esta función está obsoleta.

bool validate_proto (SV * nombre, SV * proto, bool warn)

Mágico Funciones


sugerencia_clara_magia
Activado por una eliminación de% ^ H, registra la clave en "PL_compiling.cop_hints_hash".

int magic_clearhint (SV * sv, MAGIC * mg)

Consejos mágicos
Activado al borrar% ^ H, restablece "PL_compiling.cop_hints_hash".

int magic_clearhints (SV * sv, MAGIC * mg)

magic_methcall
Invoca un método mágico (como FETCH).

"sv" y "mg" son la cosa atada y la magia del lazo.

"metanfetamina" es el nombre del método a llamar.

"argc" es el número de argumentos (además de $ self) para pasar al método.

Las "banderas" pueden ser:

Método de invocación G_DISCARD con el indicador G_DISCARD y no
devolver un valor
G_UNDEF_FILL llena la pila con punteros argc para
PL_sv_undef

Los argumentos en sí son cualquier valor que siga al argumento "banderas".

Devuelve el SV (si lo hay) devuelto por el método, o NULL en caso de error.

SV * llamada_metalgia_mágica (SV * sv, const MAGIC * mg,
SV * metanfetamina, banderas U32, argc U32,
...)

magic_setint
Activado por una tienda en% ^ H, registra el par clave / valor en
"PL_compiling.cop_hints_hash". Se supone que las sugerencias no almacenan nada.
eso necesitaría una copia profunda. Quizás deberíamos advertir si encontramos una referencia.

int magic_sethint (SV * sv, MAGIC * mg)

mg_localizar
Copie algo de la magia de un SV existente a una nueva versión localizada de ese SV.
La magia de contenedor (por ejemplo,% ENV, $ 1, empate) se copia, la magia de valor no (por ejemplo, mancha,
pos).

Si setmagic es falso, entonces no se invocará ningún set magic en el nuevo SV (vacío). Esta
típicamente significa que la asignación seguirá pronto (por ejemplo, 'local $ x = $ y'), y que
manejará la magia.

void mg_localize (SV * sv, SV * nsv, bool setmagic)

Misceláneos Funciones


free_c_backtrace
Distribuye un seguimiento recibido de get_c_bracktrace.

void free_c_backtrace (Perl_c_backtrace * bt)

get_c_backtrace
Recopila el backtrace (también conocido como "stacktrace") en un único búfer lineal mal ubicado,
que la persona que llama deben Perl_free_c_backtrace ().

Escanea los fotogramas hacia atrás por profundidad + salto, luego suelta el salto hacia el interior, volviendo a
la mayoría de los fotogramas de profundidad.

Perl_c_backtrace * get_c_backtrace (int max_depth,
saltar int)

MRO Funciones


mro_get_linear_isa_dfs
Devuelve la linealización de búsqueda en profundidad de @ISA el alijo dado. El regreso
El valor es un AV * de solo lectura. "nivel" debe ser 0 (se usa internamente en este
recursividad de la función).

Usted es responsable de "SvREFCNT_inc ()" en el valor devuelto si planea almacenar
en cualquier lugar de forma semipermanente (de lo contrario, podría eliminarse de debajo de usted el
la próxima vez que se invalide la caché).

AV * mro_get_linear_isa_dfs (HV * stash, nivel U32)

mro_isa_cambiado_en
Toma los pasos necesarios (invalidaciones de caché, en su mayoría) cuando el @ISA de la
el paquete ha cambiado. Invocado por la magia "setisa", no debería ser necesario invocar
.

void mro_isa_changed_in (HV * alijo)

mro_package_moved
Llame a esta función para indicarle a un escondite que se ha asignado a otro lugar
en la jerarquía de alijo. "alijo" es el alijo que se ha asignado. "oldstash"
es el alijo que reemplaza, si lo hay. "gv" es el glob que en realidad se
asignado a.

Esto también se puede llamar con un primer argumento nulo para indicar que "oldstash" tiene
ha sido eliminado.

Esta función invalida las cachés isa en el antiguo alijo, en todos los subpaquetes anidados
dentro de él, y en las subclases de todos aquellos, incluidos los paquetes inexistentes
que tienen entradas correspondientes en "alijo".

También establece los nombres efectivos ("HvENAME") en todos los alijos según corresponda.

Si el "gv" está presente y no está en la tabla de símbolos, esta función simplemente
devoluciones. Esta marcada se omitirá si "flags & 1".

void mro_package_moved (HV * const stash,
HV * const oldstash,
VG constante * VG constante,
Banderas U32)

Optree Manipulación Funciones


finalizar_optree
Esta función finaliza el optree. Debe llamarse directamente después de la completa
Optree está construido. Realiza algunas comprobaciones adicionales que no se pueden realizar en el
funciones normales de ck_xxx y hace que el árbol sea seguro para subprocesos.

void finalize_optree (OP * o)

Pad Respaldo de Estructuras


CX_CURPAD_SAVE
Guarde el pad actual en la estructura de bloque de contexto dada.

void CX_CURPAD_SAVE (contexto de estructura)

CX_CURPAD_SV
Acceda al SV en offset po en el pad actual guardado en el bloque de contexto dado
estructura (se puede utilizar como valor l).

SV * CX_CURPAD_SV (contexto de estructura, PADOFFSET po)

PadnameIsOUR
Si se trata de una variable "nuestra".

bool PadnameIsOUR (PADNAME pn)

Nombre de padEsESTADO
Si se trata de una variable de "estado".

bool PadnameIsSTATE (PADNAME pn)

Nombre de padOURSTASH
El alijo en el que se declaró esta variable "nuestra".

HV * PadnameOURSTASH ()

Nombre de padOUTER
Si esta entrada pertenece a un pad externo. Las entradas para las que esto es cierto son
a menudo denominado "falso".

bool PadnameOUTER (PADNAME pn)

Nombre de tecladoTIPO
El alijo asociado con un léxico mecanografiado. Esto devuelve el% Foo :: hash para "my
Foo $ bar ".

HV * PadnameTYPE (PADNAME pn)

PAD_BASE_SV
Obtenga el valor de la ranura "po" en el pad base (DEPTH = 1) de una lista de pad

SV * PAD_BASE_SV (lista de teclado PADLIST, PADOFFSET po)

PAD_CLONE_VARS
Clone las variables de estado asociadas con la ejecución y compilación de pads.

void PAD_CLONE_VARS (PerlInterpreter * proto_perl,
CLONE_PARAMS * param)

PAD_COMPNAME_FLAGS
Devuelve las banderas para el nombre de la plataforma de compilación actual en el desplazamiento "po". Asume un
entrada de ranura válida.

U32 PAD_COMPNAME_FLAGS (PADOFFSET po)

PAD_COMPNAME_GEN
El número de generación del nombre en el desplazamiento "po" en el panel de compilación actual
(lvalor). Tenga en cuenta que "SvUVX" está secuestrado para este propósito.

STRLEN PAD_COMPNAME_GEN (PADOFFSET po)

PAD_COMPNAME_GEN_conjunto
Establece el número de generación del nombre en el desplazamiento "po" en el pad ling actual
(lvalue) a "gen". Tenga en cuenta que "SvUV_set" está secuestrado para este propósito.

STRLEN PAD_COMPNAME_GEN_set (PADOFFSET po, int gen)

PAD_COMPNAME_OURSTASH
Devuelve el alijo asociado con una variable "nuestra". Asume que la entrada de la ranura es una
válido "nuestro" léxico.

HV * PAD_COMPNAME_OURSTASH (PADOFFSET po)

PAD_COMPNAME_PV
Devuelve el nombre del panel de compilación actual en el desplazamiento "po". Asume un válido
entrada de ranura.

char * PAD_COMPNAME_PV (PADOFFSET po)

PAD_COMPNAME_TYPE
Devuelve el tipo (alijo) del nombre de la plataforma de compilación actual en el desplazamiento "po". Debe ser
un nombre válido. Devuelve nulo si no se escribe.

HV * PAD_COMPNAME_TYPE (PADOFFSET po)

PAD_RESTORE_LOCAL
Restaurar el antiguo pad guardado en la variable local opad por PAD_SAVE_LOCAL ()

anular PAD_RESTORE_LOCAL (PAD * opad)

PAD_SAVE_LOCAL
Guarde el pad actual en la variable local opad, luego haga que el pad actual sea igual
a npad

anular PAD_SAVE_LOCAL (PAD * opad, PAD * npad)

PAD_SAVE_SETNULLPAD
Guarde el pad actual y luego configúrelo en nulo.

anular PAD_SAVE_SETNULLPAD ()

PAD_SETSV
Establezca la ranura en el desplazamiento "po" en el pad actual en "sv"

SV * PAD_SETSV (PADOFFSET po, SV * sv)

PAD_SET_CUR
Configure el pad actual para que sea el pad "n" en la lista de pad, guardando el pad actual anterior.
NB, actualmente esta macro se expande a una cadena demasiado larga para algunos compiladores, por lo que es
mejor reemplazarlo con

SAVECOMPPAD ();
PAD_SET_CUR_NOSAVE (lista de pads, n);

void PAD_SET_CUR (lista de padlist, I32 n)

PAD_SET_CUR_NOSAVE
como PAD_SET_CUR, pero sin guardar

void PAD_SET_CUR_NOSAVE (lista de padlist, I32 n)

PAD_SV Obtiene el valor en el desplazamiento "po" en el pad actual

SV * PAD_SV (PADOFFSET po)

PAD_SVl Versión ligera y lvalue de "PAD_SV". Obtenga o establezca el valor en el desplazamiento "po"
en el pad actual. A diferencia de "PAD_SV", no imprime diagnósticos con -DX. Para
solo para uso interno.

SV * PAD_SVl (PADOFFSET po)

GUARDARCLEARSV
Borre el valor de la almohadilla apuntada a la salida del osciloscopio. (es decir, la acción en tiempo de ejecución de 'mi')

anular SAVECLEARSV (SV ** svp)

GUARDAR COMPPAD
guardar PL_comppad y PL_curpad

anular SAVECOMPPAD ()

GUARDARPADSV
Guardar una ranura de almohadilla (utilizada para restaurar después de una iteración)

XXX DAPM, tendría más sentido hacer del arg un PADOFFSET
anular SAVEPADSV (PADOFFSET po)

Por intérprete Variables


PL_DBúnico
Cuando Perl se ejecuta en modo de depuración, con el -d interruptor, este SV es un booleano que
indica si los subs están siendo de un solo paso. El paso único es automáticamente
encendido después de cada paso. Esta es la variable C que corresponde a la de Perl
$ DB :: variable única. Consulte "PL_DBsub".

SV * PL_DBúnico

PL_DBsub
Cuando Perl se ejecuta en modo de depuración, con el -d interruptor, este GV contiene el SV
que contiene el nombre del sub que se está depurando. Esta es la variable C que
corresponde a la subvariable $ DB :: de Perl. Consulte "PL_DBsingle".

GV * PL_DBsub

Seguimiento de PL_DB
Variable de seguimiento utilizada cuando Perl se ejecuta en modo de depuración, con la -d cambiar. Esto
es la variable C que corresponde a la variable $ DB :: trace de Perl. Ver
"PL_DBsingle".

SV * PL_DBtraza

PL_downarn
La variable C que corresponde a la variable de advertencia $ ^ W de Perl.

booleano PL_dowarn

PL_último_en_gv
GV que se utilizó por última vez para una operación de entrada de identificador de archivo. (" ")

GV * PL_last_in_gv

PL_ofsgv
Glob que contiene el separador de campo de salida - "*" en el espacio de Perl.

GV * PL_ofsgv

PL_rs El separador de registros de entrada - $ / en el espacio Perl.

SV * PL_rs

Apilar Manipulación Macros


djSP Declare solo "SP". En realidad, es idéntico a "dSP" y declara una copia local.
del puntero de pila de perl, disponible a través de la macro "SP". Consulte "SP". (Disponible para
compatibilidad del código fuente con versiones anteriores del modelo de subproceso antiguo (Perl 5.005)).

DJSP;

LVRET Verdadero si esta operación será el valor de retorno de una subrutina lvalue

SV Manipulación Funciones


Un SV (o AV, HV, etc.) se asigna en dos partes: la cabeza (struct sv, av, hv ...)
contiene información de recuento de tipos y referencias, y para muchos tipos, un puntero al cuerpo
(struct xrv, xpv, xpviv ...), que contiene campos específicos para cada tipo. Algunos tipos
almacenan todo lo que necesitan en la cabeza, por lo que no tienen cuerpo.

En todas las configuraciones, excepto en la mayoría de las paranoicas de memoria (p. Ej., PURIFY), las cabezas y los cuerpos son
asignados fuera de las arenas, que de forma predeterminada son aproximadamente 4K trozos de memoria parcelados
en N cabezas o cuerpos. Los cuerpos sv se asignan por su tipo sv, lo que garantiza el tamaño
consistencia necesaria para asignar de forma segura desde matrices.

Para SV-heads, la primera ranura en cada arena está reservada y contiene un enlace a la siguiente
arena, algunas banderas y una nota del número de espacios. Serpenteado a través de cada cadena de arena es
una lista vinculada de artículos gratuitos; cuando esto se vacía, se asigna una arena adicional y
dividido en N elementos que se insertan en la lista gratuita.

Los cuerpos SV son similares, pero usan conjuntos de arena de forma predeterminada, que separan el enlace y
información de la arena en sí, y reclamar el primer espacio en la arena. Los cuerpos SV están más lejos
descrito más adelante.

Las siguientes variables globales están asociadas con arenas:

PL_sv_arenaroot puntero a la lista de arenas SV
PL_sv_root puntero a la lista de estructuras SV libres

PL_body_arenas jefe de lista enlazada de arenas corporales
PL_body_roots [] matriz de punteros a la lista de cuerpos libres de svtype
las matrices están indexadas por el tipo de sv necesario

Algunas cabezas SV especiales no se asignan desde una arena, sino que se crean directamente
en la estructura del intérprete, por ejemplo, PL_sv_undef. El tamaño de las arenas se puede cambiar desde el
por defecto configurando PERL_ARENA_SIZE apropiadamente en tiempo de compilación.

La arena SV tiene el propósito secundario de permitir que los SV aún vivos sean ubicados y
destruido durante la limpieza final.

En el nivel más bajo, las macros new_SV () del_SV () agarre y libere una cabeza SV. (Si
depurar con -DD, del_SV () llama a la función S_del_sv () para devolver el SV a la libre
lista con comprobación de errores.) new_SV () llamadas more_sv () / sv_add_arena () para agregar una arena extra
si la lista libre está vacía. Los SV en la lista libre tienen su campo SvTYPE configurado en todos.

En el momento de la limpieza final, sv_free_arenas () es llamado desde perl_destruct () a
Liberar físicamente todas las arenas asignadas desde el inicio del intérprete.

La función visitar() escanea la lista de arenas SV y llama a una función específica para cada SV
encuentra cuál está todavía en vivo, es decir, cuál tiene un SvTYPE diferente a todos los 1 y un valor distinto de cero
SvREFCNT. visitar() es utilizado por las siguientes funciones (especificadas como [función que llama
visitar()] / [función llamada por visitar() para cada SV]):

sv_report_used () / do_report_used ()
volcar todos los SV restantes (ayuda de depuración)

sv_clean_objs () / do_clean_objs (), do_clean_named_objs (),
do_clean_named_io_objs (), do_curse ()
Intente liberar todos los objetos apuntados por vehículos recreativos,
tratar de hacer lo mismo con todos los objetos indir-
ectly referenciado por typeglobs también, y
luego haz un barrido final, maldiciendo cualquier
objetos que quedan. Llamado una vez desde
perl_destruct (), antes de llamar a sv_clean_all ()
abajo.

sv_clean_all () / do_clean_all ()
SvREFCNT_dec (sv) cada SV restante, posiblemente
activando un sv_free (). También establece el
Bandera SVf_BREAK en el SV para indicar que el
refcnt se ha reducido artificialmente, y por lo tanto
evitar que sv_free () dé advertencias falsas
sobre los SV que inesperadamente tienen un refcnt
de cero. llamado repetidamente desde perl_destruct ()
hasta que no queden SV.

SvPIENSA PRIMERO
Una verificación rápida de la bandera para ver si un sv debe pasarse a sv_force_normal para ser
"degradado" antes de que SvIVX o SvPVX se puedan modificar directamente.

Por ejemplo, si su escalar es una referencia y desea modificar la ranura SvIVX,
no puede simplemente hacer SvROK_off, ya que eso filtrará el referente.

Esto es utilizado internamente por varias funciones de modificación de sv, como sv_setsv,
sv_setiv y sv_pvn_force.

Un caso que esto no maneja es un gv sin el conjunto SvFAKE. Después

if (SvTHINKFIRST (gv)) sv_force_normal (gv);

seguirá siendo un gv.

SvTHINKFIRST a veces produce falsos positivos. En esos casos sv_force_normal
no hace nada.

U32 SvTHINKFIRST (SV * sv)

sv_add_arena
Dado un trozo de memoria, vincúlelo al encabezado de la lista de arenas y divídalo
en una lista de SV gratuitos.

void sv_add_arena (char * const ptr, const U32 size,
banderas const U32)

sv_clean_all
Disminuya el refcnt de cada SV restante, posiblemente desencadenando una limpieza. Esta
La función puede tener que ser llamada varias veces para liberar SV que están en complejo
jerarquías autorreferenciales.

I32 sv_clean_all ()

sv_clean_objs
Intenta destruir todos los objetos que aún no hayas liberado.

vacío sv_clean_objs ()

sv_free_arenas
Desasignar la memoria utilizada por todas las arenas. Tenga en cuenta que todas las cabezas SV individuales
y los cuerpos dentro de las arenas ya deben haber sido liberados.

void sv_free_arenas ()

SV-Cuerpo Asignación


sv_2num NOTA: esta función es experimental y puede cambiar o eliminarse sin previo aviso.

Devuelve un SV con el valor numérico del SV de origen, haciendo lo necesario
conversión de referencia o sobrecarga. Se espera que la persona que llama haya manejado get-
magia ya.

SV * sv_2num (SV * const sv)

sv_copypv
Copia una representación en cadena del SV de origen en el SV de destino.
Realiza automáticamente cualquier mg_get necesario y la coerción de valores numéricos en
instrumentos de cuerda. Garantizado para preservar la bandera UTF8 incluso de objetos sobrecargados. Similar
en la naturaleza a sv_2pv [_flags] pero opera directamente en un SV en lugar de solo en el
cuerda. Principalmente usa sv_2pv_flags para hacer su trabajo, excepto cuando eso perdería la
UTF-8 'del PV.

void sv_copypv (SV * const dsv, SV * const ssv)

sv_ref Devuelve un SV que describe a qué se refiere el SV.

SV * sv_ref (SV * dst, const SV * const sv,
constante intob)

Unicode Soporte


encontrar_uninit_var
NOTA: esta función es experimental y puede cambiar o eliminarse sin previo aviso.

Busque el nombre de la variable indefinida (si existe) que causó que el operador emitiera
una advertencia de "Uso de valor no inicializado". Si la coincidencia es verdadera, solo devuelve un nombre si
su valor coincide con uninit_sv. En términos generales, si un operador unario (como
OP_COS) genera una advertencia, luego seguir al hijo directo de la operación puede producir
un OP_PADSV u OP_GV que da el nombre de la variable indefinida. En el otro
mano, con OP_ADD hay dos ramas a seguir, por lo que solo imprimimos la variable
nombre si obtenemos una coincidencia exacta. desc_p apunta a un puntero de cadena que sostiene el
descripción de la op. Esto puede actualizarse si es necesario.

El nombre se devuelve como un SV mortal.

Supone que PL_op es la operación que originalmente desencadenó el error, y que
PL_comppad / PL_curpad apunta al pad que se está ejecutando actualmente.

SV * find_uninit_var (const OP * const obase,
const SV * const uninit_sv,
coincidencia bool, const char ** desc_p)

informe_uninit
Imprima la advertencia adecuada "Uso de variable no inicializada".

void report_uninit (const SV * uninit_sv)

Indocumentado funciones


Las siguientes funciones no están documentadas actualmente. Si usa uno de ellos, es posible que desee
considerar la posibilidad de crear y enviar documentación para ello.

PerlIO_restore_errno
PerlIO_save_errno
Losa_Alloc
Losa_Libre
Losa_a_ro
Losa_a_rw
_add_range_to_invlist
_core_swash_init
_get_codificación
_get_swash_invlist
_invlist_array_init
_invlist_contains_cp
_invlist_contents
_invlist_dump
_invlist_intersección
_invlist_intersection_quizás_complemento_2nd
_invlist_invertir
_invlist_len
_invlist_populate_swatch
_invlist_búsqueda
_invlist_subtract
_invlist_union
_invlist_union_quizás_complemento_2nd
_load_PL_utf8_foldclosures
_nueva_lista_incluida
_setup_canned_invlist
_swash_inversion_hash
_swash_to_invlist
_to_fold_latin1
_to_upper_title_latin1
_warn_problematic_locale
aassign_common_vars
add_cp_to_invlist
alloc_maybe_populate_EXACT
alocmia
amagic_is_enabled
aplicar
av_extend_guts
av_reify
enlazar_coincidir
boot_core_PerlIO
boot_core_UNIVERSAL
arranque_core_mro
cando
comprobar_utf8_imprimir
ck_anocode
ck_backtick
ck_bitop
ck_cmp
ck_concat
ck_definido
ck_delete
ck_cada uno
ck_entersub_args_core
ck_eof
ck_eval
ck_exec
ck_existe
ck_ftst
ck_fun
ck_glob
ck_grep
índice_ck
ck_join
ck_longitud
ck_lfun
ck_listiob
ck_match
método_ck
ck_null
ck_abierto
ck_prototipo
ck_readline
ck_refassign
ck_repetir
ck_require
ck_retorno
ck_rfun
ck_rvconst
ck_sassign
ck_select
ck_shift
ck_smartmatch
ck_sort
ck_spair
ck_split
ck_stringify
ck_subr
ck_substr
ck_svconst
ck_tell
ck_trunc
más cercano_cop
computar_EXACTish
coresub_op
crear_eval_scope
croar_no_mem
croak_popstack
actual_re_motor
campo_op_get_personalizado
cv_ckproto_len_flags
cv_clone_into
cv_const_sv_or_av
cv_undef_flags
cvgv_de_hek
cvgv_set
cvstash_set
deb_stack_all
defelem_objetivo
eliminar_eval_scope
morir_descansar
do_aexec
do_aexec5
do_eof
hacer_exec
do_exec3
do_execfree
do_ipcctl
hacer_ipcget
do_msgrcv
do_msgsnd
hacer_ncmp
do_open6
hacer_abrir_crudo
hacer_imprimir
hacer_readline
hacer_buscar
do_semop
do_shmio
do_sysseek
digas
do_trans
do_vecget
do_vecset
do_vop
dofile
drand48_init_r
drand48_r
dump_all_perl
dump_packsubs_perl
volcado_sub_perl
dump_sv_child
emular_cop_io
función_está_habilitada
encontrar_lexical_cv
encontrar_runcv_dónde
find_rundefsv2
encontrar_script
free_tied_hv_piscina
get_and_check_backslash_N_name
get_db_sub
get_debug_opts
obtener_hash_seed
get_invlist_iter_addr
get_invlist_offset_addr
get_invlist_previous_index_addr
obtener_no_modificar
get_opargs
get_re_arg
getenv_len
grok_atoUV
grok_bslash_x
gv_fetchmeth_internal
gv_override
gv_setref
gv_stashpvn_internal
gv_stashsvpvn_cached
hfree_next_entry
hv_backreferences_p
hv_kill_backrefs
hv_marcadores_p
hv_undef_flags
init_argv_símbolos
constantes_inicio
init_dbargs
init_debugger
invertir
invlist_array
invlist_clone
invlist_highest
invlist_is_iterando
invlist_iterfinish
invlist_iterinit
lista_inv_max
invlist_previous_index
invlist_set_len
invlist_set_anterior_índice
invlist_trim
io_cerrar
es_utf8_común
isinfnansv
tal vez
keyword
palabra clave_plugin_estándar
lista
localizar
magic_clear_all_env
magic_cleararylen_p
magic_clearenv
magia_clearisa
paquete_claro_magico
magia_clearsig
magic_copycallchecker
paquete_existemagia
magic_freearylen_p
magic_freeovrld
obtener_magia
magia_getarylen
magia_getdebugvar
magic_getdefelem
llaves_magicas
paquete_magico
magic_getpos
magia_getsig
magic_getsubstr
magia_gettaint
magia_getuvar
magia_getvec
magia_killbackrefs
magic_nextpack
magia_regdata_cnt
magic_regdatum_get
magic_regdatum_set
paquete_escalar_magico
conjunto_magico
magic_set_all_env
magia_setarylen
magic_setcollxfrm
magic_setdbline
magic_setdebugvar
magic_setdefelem
magia_setenv
magia_setisa
magia_setlvref
magia_setmglob
llaves_magicas
paquete_magico
magic_setpos
magic_setregexp
magic_setsig
magic_setsubstr
conjunto_magico
magia_setutf8
magia_setuvar
magia_setvec
paquete_tamaño_magico
paquete de toallitas mágicas
malloc_buen_tamaño
tamaño_malloced
mem_collxfrm
mg_find_mglob
modo_de_disciplina
mas_cuerpos
mro_meta_dup
mro_meta_init
multideref_stringify
mis_atributos
mi_clearenv
mis_lstat_flags
mis_stat_flags
mi_unexec
nuevoATTRSUB_x
nuevoGP
nuevoMETHOP_interno
nuevoSTUB
nuevoSVavdefelem
nuevoXS_deffile
nuevoXS_len_flags
nuevas_advertencias_bitfield
siguienteargv
noperl_die
UpsAV
UpsHV
op_clear
op_integerizar
op_lvalue_flags
op_refcnt_dec
op_refcnt_inc
op_relocate_sv
op_std_init
op_unscopio
opmethod_stash
opslab_force_free
opslab_free
opslab_free_nopad
PARA DOS
versión_paquete
pad_add_weakref
padlist_store
padname_free
padnamelist_free
parse_subfirma
parse_unicode_opts
analizador_gratis
parser_free_nextoke_ops
ruta_es_buscable
pío
tiempo de ejecución
poblar_isa
ptr_hash
error
re_op_compilar
reg_named_buff
reg_named_buff_iter
reg_numbered_buff_fetch
reg_numerado_buff_longitud
reg_numbered_buff_store
reg_qr_paquete
reg_skipcomentario
reg_temp_copia
con regularidad
regpposixcc
Regprop
report_evil_fh
informe_redefinido_cv
report_wrongway_fh
rpeep
rsignal_restore
rsignal_save
rxres_save
misma_dirección
save_aliased_sv
guardar_strlen
aserrín
escalar
escalar
set_caret_X
set_padlist
debería_advertir_nl
controlador de sig
softref2xv
ssc_add_range
ssc_clear_locale
ssc_cp_and
ssc_intersección
unión_ssc
sub_crush_profundidad
sv_add_backref
sv_buf_to_ro
sv_del_backref
sv_free2
sv_kill_backrefs
sv_len_utf8_nomg
sv_magicext_mglob
sv_mortalcopy_flags
sv_only_taint_gmagic
sv_or_pv_pos_u2b
sv_resetpvn
sv_sethek
sv_setsv_cow
sv_unglob
método_atado
tmps_grow_p
traducir_substr_offsets
prueba_amagic_bin
prueba_amagic_un
unshare_hek
utilizar
nombrevar
vivify_defelem
vivificar_ref
esperar4pid
was_lvalue_sub
reloj
win32_croak_not_implementado
escribir_a_stderr
xs_boot_epilog
xs_apretón de manos
yyerror
yyerror_pv
yyerror_pvn
yylex
analizar
yunlex

AUTORES


El sistema de autodocumentación fue agregado originalmente al núcleo de Perl por Benjamin Stuhl.
La documentación la realiza quien tuvo la amabilidad de documentar sus funciones.

Utilice perlintern en línea utilizando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

  • 1
    pase de autorización
    pase de autorización
    AuthPass es una contraseña de código abierto
    gerente con apoyo para los populares y
    Keepass probado (kdbx 3.xy kdbx 4.x ...
    Descargar authpass
  • 2
    Zabbix
    Zabbix
    Zabbix es una clase empresarial abierta
    solución de monitoreo distribuido de origen
    diseñado para monitorear y rastrear
    rendimiento y disponibilidad de la red
    servidores, dispositivo...
    Descargar Zabbix
  • 3
    KDiff3
    KDiff3
    Este repositorio ya no se mantiene
    y se conserva con fines de archivo. Ver
    https://invent.kde.org/sdk/kdiff3 for
    el código más nuevo y
    https://download.kde.o...
    Descargar KDiff3
  • 4
    Cargador USBGX
    Cargador USBGX
    USBLoaderGX es una GUI para
    Cargador USB de Waninkoko, basado en
    libwiigui. Permite listar y
    lanzar juegos de Wii, juegos de Gamecube y
    homebrew en Wii y WiiU...
    Descargar USB Loader GX
  • 5
    Firebird
    Firebird
    Firebird RDBMS ofrece funciones ANSI SQL
    y se ejecuta en Linux, Windows y
    varias plataformas Unix. Características
    excelente concurrencia y rendimiento
    & energía...
    Descargar pájaro de fuego
  • 6
    KompoZer
    KompoZer
    KompoZer es un editor HTML wysiwyg que utiliza
    el código base de Mozilla Composer. Como
    El desarrollo de Nvu se ha detenido.
    en 2005, KompoZer corrige muchos errores y
    agrega una f...
    Descargar KompoZer
  • Más "

Comandos de Linux

Ad