El producto de la traducción - que es la entrada para el intérprete - es un árbol. Cada operación del intérprete es un nodo del árbol. Los argumentos de la operación son los hijos del nodo.
Hay diferentes tipos de operadores. Por ejemplo el operador binario add toma dos valores de la pila y empuja la suma. El operador unario readline toma un manejador de ficheros de la pila y empuja el valor leído.
Algunos operadores actúan sobre listas. Por ejemplo print toma un número variable de elementos de la pila. Los operadores de listas se apoyan en un uso previo del operador pushmark para marcar el comienzo de la listade argumentos.
Los módulos en la familia B::* permiten acceder a dicho árbol
( B ,  B::Deparse ,  B::Bytecode ,  B::ByteLoader , etc.).
El módulo B representa cada operador como una subclase
de la clase  B::OP . Estas clases contienen métodos que nos permiten 
obtener información sobre o modificar el estado interno del 
operador. Por ejemplo obtener los hijos de un operador.
Para tener una visión en profundidad del tema puede consultar 
los libros de Simon Cozens 
[]
y
[8].
 
