The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Venus::Core::Class - Class Base Class

ABSTRACT

Class Base Class for Perl 5

SYNOPSIS

package User;

use base 'Venus::Core::Class';

package main;

my $user = User->new(
  fname => 'Elliot',
  lname => 'Alderson',
);

# bless({fname => 'Elliot', lname => 'Alderson'}, 'User')

DESCRIPTION

This package provides a class base class with class building and object construction lifecycle hooks.

INHERITS

This package inherits behaviors from:

Venus::Core

METHODS

This package provides the following methods:

does

does(string $name) (boolean)

The does method returns true if the object is composed of the role provided.

Since 1.00

does example 1
# given: synopsis

my $does = $user->does('Identity');

# 0

import

import(any @args) (any)

The import method invokes the IMPORT lifecycle hook and is invoked whenever the "use" in perlfunc declaration is used.

Since 2.91

import example 1
package main;

use User;

# ()

meta

meta() (Venus::Meta)

The meta method returns a Venus::Meta objects which describes the package's configuration.

Since 1.00

meta example 1
package main;

my $user = User->new(
  fname => 'Elliot',
  lname => 'Alderson',
);

my $meta = $user->meta;

# bless({...}, 'Venus::Meta')

new

new(any %args | hashref $args) (object)

The new method instantiates the class and returns a new object.

Since 1.00

new example 1
package main;

my $user = User->new(
  fname => 'Elliot',
  lname => 'Alderson',
);

# bless({fname => 'Elliot', lname => 'Alderson'}, 'User')
new example 2
package main;

my $user = User->new({
  fname => 'Elliot',
  lname => 'Alderson',
});

# bless({fname => 'Elliot', lname => 'Alderson'}, 'User')

unimport

unimport(any @args) (any)

The unimport method invokes the UNIMPORT lifecycle hook and is invoked whenever the "no" in perlfunc declaration is used.

Since 2.91

unimport example 1
package main;

no User;

# ()

AUTHORS

Awncorp, awncorp@cpan.org

LICENSE

Copyright (C) 2022, Awncorp, awncorp@cpan.org.

This program is free software, you can redistribute it and/or modify it under the terms of the Apache license version 2.0.