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::Role::Printable - Printable Role

ABSTRACT

Printable Role for Perl 5

SYNOPSIS

package Example;

use Venus::Class;

with 'Venus::Role::Dumpable';
with 'Venus::Role::Printable';

attr 'test';

sub execute {
  return [@_];
}

sub printer {
  return [@_];
}

package main;

my $example = Example->new(test => 123);

# $example->say;

DESCRIPTION

This package provides a mechanism for outputting (printing) objects or the return value of a dispatched method call to STDOUT.

METHODS

This package provides the following methods:

print

print(any @data) (any)

The print method prints a stringified representation of the underlying data.

Since 0.01

package main;

my $example = Example->new(test => 123);

my $print = $example->print;

# bless({test => 123}, 'Example')

# 1
package main;

my $example = Example->new(test => 123);

my $print = $example->print('execute', 1, 2, 3);

# [bless({test => 123}, 'Example'),1,2,3]

# 1
print_json(string | coderef $method, any @args) (any)

The print_json method prints a JSON representation of the underlying data. This method supports dispatching, i.e. providing a method name and arguments whose return value will be acted on by this method.

Since 2.91

package main;

my $example = Example->new(test => 123);

my $print_json = $example->print_json;

# "{\"test\": 123}"
package main;

my $example = Example->new(test => 123);

my $print_json = $example->print_json('execute');

# "[{\"test\": 123}]"
print_pretty(any @data) (any)

The print_pretty method prints a stringified human-readable representation of the underlying data.

Since 0.01

package main;

my $example = Example->new(test => 123);

my $print_pretty = $example->print_pretty;

# bless({ test => 123 }, 'Example')

# 1
package main;

my $example = Example->new(test => 123);

my $print_pretty = $example->print_pretty('execute', 1, 2, 3);

# [
#   bless({ test => 123 }, 'Example'),
#   1,
#   2,
#   3
# ]

# 1
print_string(string | coderef $method, any @args) (any)

The print_string method prints a string representation of the underlying data without using a dump. This method supports dispatching, i.e. providing a method name and arguments whose return value will be acted on by this method.

Since 0.09

package main;

my $example = Example->new(test => 123);

my $print_string = $example->print_string;

# 'Example'

# 1
print_yaml(string | coderef $method, any @args) (any)

The print_yaml method prints a YAML representation of the underlying data. This method supports dispatching, i.e. providing a method name and arguments whose return value will be acted on by this method.

Since 2.91

package main;

my $example = Example->new(test => 123);

my $print_yaml = $example->print_yaml;

# "---\ntest: 123"
package main;

my $example = Example->new(test => 123);

my $print_yaml = $example->print_yaml('execute');

# "---\n- test: 123"

say

say(any @data) (any)

The say method prints a stringified representation of the underlying data, with a trailing newline.

Since 0.01

say example 1
package main;

my $example = Example->new(test => 123);

my $say = $example->say;

# bless({test => 123}, 'Example')\n

# 1
say example 2
package main;

my $example = Example->new(test => 123);

my $say = $example->say;

# [bless({test => 123}, 'Example'),1,2,3]\n

# 1

say_json

say_json(string | coderef $method, any @args) (any)

The say_json method prints a JSON representation of the underlying data. This method supports dispatching, i.e. providing a method name and arguments whose return value will be acted on by this method, with a trailing newline.

Since 2.91

say_json example 1
package main;

my $example = Example->new(test => 123);

my $say_json = $example->say_json;

# "{\"test\": 123}\n"
say_json example 2
package main;

my $example = Example->new(test => 123);

my $say_json = $example->say_json('execute');

# "[{\"test\": 123}]\n"

say_pretty

say_pretty(any @data) (any)

The say_pretty method prints a stringified human-readable representation of the underlying data, with a trailing newline.

Since 0.01

say_pretty example 1
package main;

my $example = Example->new(test => 123);

my $say_pretty = $example->say_pretty;

# bless({ test => 123 }, 'Example')\n

# 1
say_pretty example 2
package main;

my $example = Example->new(test => 123);

my $say_pretty = $example->say_pretty;

# [
#   bless({ test => 123 }, 'Example'),
#   1,
#   2,
#   3
# ]\n

# 1

say_string

say_string(string | coderef $method, any @args) (any)

The say_string method prints a string representation of the underlying data without using a dump, with a trailing newline. This method supports dispatching, i.e. providing a method name and arguments whose return value will be acted on by this method.

Since 0.09

say_string example 1
package main;

my $example = Example->new(test => 123);

my $say_string = $example->say_string;

# "Example\n"

# 1

say_yaml

say_yaml(string | coderef $method, any @args) (any)

The say_yaml method prints a YAML representation of the underlying data. This method supports dispatching, i.e. providing a method name and arguments whose return value will be acted on by this method, with a trailing newline.

Since 2.91

say_yaml example 1
package main;

my $example = Example->new(test => 123);

my $say_yaml = $example->say_yaml;

# "---\ntest: 123\n"
say_yaml example 2
package main;

my $example = Example->new(test => 123);

my $say_yaml = $example->say_yaml('execute');

# "---\n- test: 123\n"

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.