The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Quiq::PerlModule - Perl-Modul

BASE CLASS

Quiq::Hash

DESCRIPTION

Ein Objekt der Klasse repräsentiert ein Perl-Modul im Dateisystem. Hinsichtlich seiner Installation.

METHODS

Konstruktor

new() - Instantiiere Objekt

Synopsis

  $mod = $class->new($name);

Description

Instantiiere Objekt für Perl-Modul $name und liefere eine Referenz auf dieses Objekt zurück.

Accessors

name() - Liefere Name des Moduls

Synopsis

  $name = $mod->name;

Example

  A::B::C

Methods

isCore() - Teste, ob Core-Modul

Synopsis

  $bool = $mod->isCore;

Description

Liefere "wahr", wenn das Modul ein Core-Modul ist, andernfalls falsch.

Ein Perl-Modul ist ein Core-Modul, wenn es bei den Perl-Quellen dabei ist, also mit dem Perl-Interpreter zusammen installiert wird.

isPragma() - Teste, ob Pragma

Synopsis

  $bool = $mod->isPragma;

Description

Liefere "wahr", wenn das Modul ein Pragma ist, andernfalls falsch.

Ein Perl-Modul ist ein Pragma, wenn sein Name keine Großbuchstaben enthält.

find() - Suche Modul im Dateisystem

Synopsis

  $path = $mod->find;

Description

Liefere den Pfad, unter dem das Modul geladen würde (mit use oder require).

Example

  use A::B::C;
  print Quiq::PerlModule->new('A::B::C')->find;
  # '/usr/lib/perl5/site_perl/5.10.0/A/B/C.pm'

loadPath() - Liefere den Lade-Pfad

Synopsis

  $path = $mod->loadPath;

Description

Liefere den Pfad, unter dem das Modul geladen wurde (mit use oder require).

Diese Methode ist nützlich, wenn einem nicht klar ist, aus welchem Pfad heraus Perl ein Modul geladen hat, z.B. weil möglicherweise mehrere Versionen des Moduls unter verschiedenen Pfaden installiert sind.

Ohne Quiq::PerlModule kann dieselbe Information auf folgendem Weg herausgefunden werden - A::B::C sei das Modul:

  $INC{'A/B/C.pm'}

Existiert der Eintrag nicht, wurde das Modul nicht geladen.

Example

  use A::B::C;
  print Quiq::PerlModule->new('A::B::C')->loadPath;
  # '/usr/lib/perl5/site_perl/5.10.0/A/B/C.pm'

nameToPath() - Liefere Modulpfad zum Modulnamen

Synopsis

  $path = $class->nameToPath($name); # Klassenmethode
  $path = $mod->nameToPath; # Objektmethode

Description

Wandele Modulname (wie er bei use angegeben wird) in Modulpfad (wie er in %INC als Schlüssel vorkommt) um und liefere diesen zurück.

Example

  'A::B::C' => 'A/B/C.pm'

pathToName() - Liefere Modulname zum Modulpfad

Synopsis

  $name = $class->pathToName($path);

Description

Wandele Modulpfad (wie er in %INC als Schlüssel vorkommt) in Modulnamen (wie er bei use angegeben wird) um und liefere diesen zurück.

Example

  'A/B/C.pm' ==> 'A::B::C'

VERSION

1.215

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2024 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.