Autocargador

AutoOaGer es un módulo PERL que puede cargar las subrutinas solo a pedido.
Descargar ahora

Autocargador Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • Perl Artistic License
  • Precio:
  • FREE
  • Nombre del editor:
  • The Perl5-Porters
  • Sitio web del editor:
  • http://search.cpan.org/~smueller/AutoLoader-5.63/lib/AutoLoader.pm

Autocargador Etiquetas


Autocargador Descripción

AutoLoaDer es un módulo PERL que puede cargar las subrutinas solo a pedido. AutoLoaDer es un módulo PERL que puede cargar las subrutinas solo en la demanda. Paquete de SSYNOPSIS FOO; Utilice el autocargador 'autoload'; # Importar la barra de paquete de subrutina AutoLoad predeterminada; usar autocargador; # No importa AutoLoad, definir nuestro propio sub autoeload {... $ autoloader :: autoload = "..."; goto autoloader :: autoload; } El módulo de AutoLoader funciona con el módulo AutoSplit y el token __end__ para diferir la carga de algunas subrutinas hasta que se usan en lugar de cargarlas todas a la vez. Para usar AutoOaGer, el autor de un módulo tiene que colocar las definiciones de subrutinas para ser Auteloaded después de un __end__ token. (Consulte PerlData). El módulo AutoSplit se puede ejecutar manualmente para extraer las definiciones en archivos individuales AUTO / FUNCNAME.AL.AUTOROAGER implementa una subrutina de carga automática. Cuando se llama una subrutina no definida en un módulo de cliente de autocargador, los intentos de subrutina AutoLoad de AutoOroader, los intentos para localizar la subrutina en un archivo con un nombre relacionado con la ubicación del archivo desde el cual se lee el módulo cliente. Como ejemplo, si POSIX.PM se encuentra en /USR/LOCAL/LIB/PERL5/POSIX.PM, AutoOoGer buscará las subrutinas PERL POSIX en /USR/LOCAL/LIB/PERL5/AUTO/POSIX/*.AL, donde El archivo .al tiene el mismo nombre que la subrutina, el paquete SANS. Si existe dicho archivo, AutoLoad le leerá y evaluará, por lo tanto, (presumiblemente) definiendo la subrutina necesaria. AutoLoad se girará luego en la subrutina recién definida. Este proceso se completa para una función determinada, se define, por lo que las llamadas futuras a la subrutina omitirán el mecanismo de carga automática. Pedido de STUBSIN de AUTROUTINE para la búsqueda del método de objeto y / o la verificación de prototipos para operar correctamente. Cuando aún no se han definido los métodos, es necesario "reenviar declarar" cada subrutina (como en el subname;). Consulte "Sinopsis" en Perlsub. Dicha declaración directa crea "talones de subrutina", que son los titulares de lugares sin código. Los módulos AutoSplit y AutoOaGer automatizan la creación de declaraciones hacia adelante. El módulo AutoSplit crea un archivo 'índice' que contiene declaraciones hacia adelante de todas las subrutinas AutoSplit. Cuando el módulo de AutoOoGer es "Usar, carga estas declaraciones en su paquete de llamadas. Porque de este mecanismo es importante que el autocargador siempre se usa y no se requiere. En la subrutina de subrutina de AutoLoad de AutoOoGer, debe importarlo explícitamente: Use AutoOoGer 'AutoLoad'; Anulación de los módulos de subrutinesomas de autocargador de autocargador, principalmente extensiones, proporcionan sus propias subrutinas de carga automática. Por lo general, deben verificar si hay algunos casos especiales (como constantes) y luego retroceder a la carga automática de AutoOoGer para los módulos REST. No se debe importar la subrutina AutoLoad de AutoOroader. En su lugar, deben definir sus propias subrutinas de carga automática a lo largo de estas líneas: use AutoOoGer; Usa la carpa; Sub AutoLoad {My $ Sub = $ AutoLoad; (My $ ConstName = $ Sub) = ~ S /.* :: //; My $ val = constante ($ constname, @_? $ _ : 0); Si ($! = 0) {if ($! = ~ / no válido / || $! {EInval}) {$ autoloader :: autoload = $ sub; goto autoloader :: autoload; } else {croak "su proveedor no ha definido constante $ constname"; }} * $ sub = sub {$ val}; # mismo que: eval "sub $ sub {$ val}"; goto $ sub; } Si la subrutina automática posee de cualquier módulo no tiene la necesidad de retroceder a la subrutina de carga automática de AutoLoader (porque no tiene ninguna subrutina automática), entonces ese módulo no debe usar AutoOaGer en All.Package LEXICASPACKAPE LEXICOS Declarados con MI en el bloque principal de Un paquete que utiliza AutoOoGer no será visible para las subrutinas automáticas, debido al hecho de que el alcance dado termina en el __end__ marcador. Un módulo que usa dichas variables, ya que los globales de paquetes no funcionarán correctamente en el autocargador. Los VARS PRAGMA (consulte "VARS" en perlmod) se pueden usar en situaciones como una alternativa para calificar explícitamente a todos los globales con el espacio de nombres del paquete. Las variables pre-declaradas con este pragma serán visibles a cualquier rutina autoloadeada (pero no será invisible fuera del paquete, desafortunadamente) .NOT USO DE AUTOLAADERYOU puede detenerse usando AutoOaGer simplemente sin autocargador; AutoLoader vs. AutoLakerEl autocargador es similar a propósito de descarga automática. : ambos retrasan la carga de SUBROUTINES.SELFLOADER usan el marcador __DATA__ en lugar de __end__. Si bien esto evita el uso de una jerarquía de archivos de disco y el Abrir / Cierre asociado para cada carga de rutina, la descarga automática sufre una desventaja de la velocidad de inicio en el análisis de una sola vez de las líneas después de __DATA__, después de qué rutinas se almacenan en caché. El autoloudador también puede manejar múltiples paquetes en un archivo.Autoloader solo lee el código a medida que se solicita, y en muchos casos debe ser más rápido, pero requiere que se utilice un mecanismo como AutoSplit para crear los archivos individuales. Extutils :: Makemaker invocará AutoSplit automáticamente si AutoAoGer se usa en un archivo de origen del módulo. Requisitos: · Perl


Autocargador Software relacionado