NAME

Rserve::REXP - base class for R objects (SEXPs)

SYNOPSIS

use Rserve::REXP;

# REXPs are stringifiable
say $rexp;

# REXPs can be converted to the closest native Perl data type
print $rexp->to_perl;

DESCRIPTION

An object of this class represents a native R object. This class cannot be directly instantiated (it will die if you call new on it), because it is intended as a base abstract class with concrete subclasses to represent specific object types.

An R object has a value and an optional set of named attributes, which themselves are R objects. Because the meaning of 'value' depends on the actual object type (for example, a vector vs. a NULL, in R terminology), REXP does not provide a generic value accessor method, although individual subclasses will typically have one.

METHODS

attributes

Returns a hash reference to the object's attributes.

sexptype

Returns the name of the corresponding R SEXP type, as listed in SEXPTYPE.

to_perl

Returns Perl representation of the object's value. This is an abstract method; see concrete subclasses for the value returned by specific object types, as well as the way to access the R (-ish) value of the object, if such makes sense.

is_null

Returns TRUE if the object is an R NULL object. In REXP's class hierarchy, this is the case only for Rserve::REXP::Null.

is_vector

Returns TRUE if the object is an R vector object. In REXP's class hierarchy, this is the case only for Rserve::REXP::Vector and its descendants.

inherits CLASS_NAME

Returns TRUE if the object is an instance of R S3-style class CLASS_NAME, in the same fashion as the R function base::inherits.

OVERLOADS

REXP overloads the stringification, eq and ne methods. Subclasses further specialize for their types if necesssary.