NAME

Option::Option

SYNOPSIS

Provides objects that can hold results that can be unwrapped similar to Rust

use Option::Option;

my $option = Option::Option->new("something");

# This croaks:
print $var;

# This works
my $var = $option->unwrap();
print $var;

# This also works and has a helpful error message
my $var = $option->expect("get my something");
print $var;

AUTHOR

Lee Katz

METHODS

new()

Creates a new object with a variable

unwrap()

Checks if the variable is defined and if it is, returns it. If not defined, croaks.

expect($msg)

Checks if the variable is defined and if it is, returns it. If not defined, croaks with error message.

toString()

Dies with an error message, describing that the object was attempted to be used in a scalar context without unwrapping. This subroutine is not meant to be used directly.

my $var = Option::Option->new("something");
my $concat = $var . " wicked this way comes";
# dies with error message during the concatenation