GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  MOJO::LOADER (3)

.ds Aq ’

NAME

Mojo::Loader - Load all kinds of things

CONTENTS

SYNOPSIS



  use Mojo::Loader qw(data_section find_modules load_class);

  # Find modules in a namespace
  for my $module (find_modules Some::Namespace) {

    # Load them safely
    my $e = load_class $module;
    warn qq{Loading "$module" failed: $e} and next if ref $e;

    # And extract files from the DATA section
    say data_section($module, some_file.txt);
  }



DESCRIPTION

Mojo::Loader is a class loader and plugin framework. Aside from finding modules and loading classes, it allows multiple files to be stored in the DATA section of a class, which can then be accessed individually.



  package Foo;

  1;
  __DATA__

  @@ test.txt
  This is the first file.

  @@ test2.html (base64)
  VGhpcyBpcyB0aGUgc2Vjb25kIGZpbGUu

  @@ test
  This is the
  third file.



Each file has a header starting with @@, followed by the file name and optional instructions for decoding its content. Currently only the Base64 encoding is supported, which can be quite convenient for the storage of binary data.

FUNCTIONS

Mojo::Loader implements the following functions, which can be imported individually.

    data_section



  my $all   = data_section Foo::Bar;
  my $index = data_section Foo::Bar, index.html;



Extract embedded file from the DATA section of a class, all files will be cached once they have been accessed for the first time.



  # List embedded files
  say for keys %{data_section Foo::Bar};



    file_is_binary



  my $bool = file_is_binary Foo::Bar, test.png;



Check if embedded file from the DATA section of a class was Base64 encoded.

    find_packages



  my @pkgs = find_packages MyApp::Namespace;



Search for packages in a namespace non-recursively.

    find_modules



  my @modules = find_modules MyApp::Namespace;



Search for modules in a namespace non-recursively.

    load_class



  my $e = load_class Foo::Bar;



Load a class and catch exceptions, returns a false value if loading was successful, a true value if the class has already been loaded, or a Mojo::Exception object if loading failed. Note that classes are checked for a new method to see if they are already loaded.



  # Handle exceptions
  if (my $e = load_class Foo::Bar) {
    die ref $e ? "Exception: $e" : Not found!;
  }



SEE ALSO

Mojolicious, Mojolicious::Guides, <http://mojolicious.org>.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 MOJO::LOADER (3) 2016-03-15

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.