NAME

Venus::Replace - Replace Class

ABSTRACT

Replace Class for Perl 5

SYNOPSIS

package main;

use Venus::Replace;

my $replace = Venus::Replace->new(
  string => 'hello world',
  regexp => '(world)',
  substr => 'universe',
);

# $replace->captures;

DESCRIPTION

This package provides methods for manipulating regexp replacement data.

ATTRIBUTES

This package has the following attributes:

flags

flags(Str)

This attribute is read-write, accepts (Str) values, is optional, and defaults to ''.

regexp

regexp(Regexp)

This attribute is read-write, accepts (Regexp) values, is optional, and defaults to qr//.

string

string(Str)

This attribute is read-write, accepts (Str) values, is optional, and defaults to ''.

substr

substr(Str)

This attribute is read-write, accepts (Str) values, is optional, and defaults to ''.

INHERITS

This package inherits behaviors from:

Venus::Kind::Utility

INTEGRATES

This package integrates behaviors from:

Venus::Role::Explainable

Venus::Role::Stashable

METHODS

This package provides the following methods:

captures

captures() (ArrayRef)

The captures method returns the capture groups from the result object which contains information about the results of the regular expression operation. This method can return a list of values in list-context.

Since 0.01

captures example 1
# given: synopsis;

my $captures = $replace->captures;

# ["world"]

count

count() (Num)

The count method returns the number of match occurrences from the result object which contains information about the results of the regular expression operation.

Since 0.01

count example 1
# given: synopsis;

my $count = $replace->count;

# 1

evaluate

evaluate() (ArrayRef)

The evaluate method performs the regular expression operation and returns an arrayref representation of the results.

Since 0.01

evaluate example 1
# given: synopsis;

my $evaluate = $replace->evaluate;

# [
#   "(world)",
#   "hello universe",
#   1,
#   [6, 6],
#   [11, 11],
#   {},
#   "hello world",
# ]
evaluate example 2
package main;

use Venus::Replace;

my $replace = Venus::Replace->new(
  string => 'hello world',
  regexp => 'world)(',
  substr => 'universe',
);

my $evaluate = $replace->evaluate;

# Exception! (isa Venus::Replace::Error) (see error_on_evaluate)

explain

explain() (Str)

The explain method returns the subject of the regular expression operation and is used in stringification operations.

Since 0.01

explain example 1
# given: synopsis;

my $explain = $replace->explain;

# "hello universe"

get

get() (Str)

The get method returns the subject of the regular expression operation.

Since 0.01

get example 1
# given: synopsis;

my $get = $replace->get;

# "hello universe"

initial

initial() (Str)

The initial method returns the unaltered string from the result object which contains information about the results of the regular expression operation.

Since 0.01

initial example 1
# given: synopsis;

my $initial = $replace->initial;

# "hello world"

last_match_end

last_match_end() (Maybe[ArrayRef[Int]])

The last_match_end method returns an array of offset positions into the string where the capture(s) stopped matching from the result object which contains information about the results of the regular expression operation.

Since 0.01

last_match_end example 1
# given: synopsis;

my $last_match_end = $replace->last_match_end;

# [11, 11]

last_match_start

last_match_start() (Maybe[ArrayRef[Int]])

The last_match_start method returns an array of offset positions into the string where the capture(s) matched from the result object which contains information about the results of the regular expression operation.

Since 0.01

last_match_start example 1
# given: synopsis;

my $last_match_start = $replace->last_match_start;

# [6, 6]

matched

matched() (Maybe[Str])

The matched method returns the portion of the string that matched from the result object which contains information about the results of the regular expression operation.

Since 0.01

matched example 1
# given: synopsis;

my $matched = $replace->matched;

# "world"

named_captures

named_captures() (HashRef)

The named_captures method returns a hash containing the requested named regular expressions and captured string pairs from the result object which contains information about the results of the regular expression operation.

Since 0.01

named_captures example 1
# given: synopsis;

my $named_captures = $replace->named_captures;

# {}
named_captures example 2
package main;

use Venus::Replace;

my $replace = Venus::Replace->new(
  string => 'hello world',
  regexp => '(?<locale>world)',
  substr => 'universe',
);

my $named_captures = $replace->named_captures;

# { locale => ["world"] }

postmatched

postmatched() (Maybe[Str)

The postmatched method returns the portion of the string after the regular expression matched from the result object which contains information about the results of the regular expression operation.

Since 0.01

postmatched example 1
# given: synopsis;

my $postmatched = $replace->postmatched;

# ""

prematched

prematched() (Maybe[Str)

The prematched method returns the portion of the string before the regular expression matched from the result object which contains information about the results of the regular expression operation.

Since 0.01

prematched example 1
# given: synopsis;

my $prematched = $replace->prematched;

# "hello "

set

set(Str $data) (Str)

The set method sets the subject of the regular expression operation.

Since 0.01

set example 1
# given: synopsis;

my $set = $replace->set('hello universe');

# "hello universe"

ERRORS

This package may raise the following errors:

error: error_on_evaluate

This package may raise an error_on_evaluate exception.

example 1

# given: synopsis;

my @args = ('Exception!');

my $error = $replace->throw('error_on_evaluate', @args)->catch('error');

# my $name = $error->name;

# "on_evaluate"

# my $message = $error->message;

# "Exception!"

OPERATORS

This package overloads the following operators:

operation: (.)

This package overloads the . operator.

example 1

# given: synopsis;

my $result = $replace . ', welcome';

# "hello universe, welcome"
operation: (eq)

This package overloads the eq operator.

example 1

# given: synopsis;

my $result = $replace eq 'hello universe';

# 1
operation: (ne)

This package overloads the ne operator.

example 1

# given: synopsis;

my $result = $replace ne 'Hello universe';

# 1
operation: (qr)

This package overloads the qr operator.

example 1

# given: synopsis;

my $result = 'hello universe, welcome' =~ qr/$replace/;

# 1
operation: ("")

This package overloads the "" operator.

example 1

# given: synopsis;

my $result = "$replace";

# "hello universe"

example 2

# given: synopsis;

my $result = "$replace, $replace";

# "hello universe, hello universe"
operation: (~~)

This package overloads the ~~ operator.

example 1

# given: synopsis;

my $result = $replace ~~ 'hello universe';

# 1

AUTHORS

Awncorp, awncorp@cpan.org

LICENSE

Copyright (C) 2000, Al Newkirk.

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