Rserve::REXP - base class for R objects (SEXP
s)
use Rserve::REXP;
# REXPs are stringifiable
say $rexp;
# REXPs can be converted to the closest native Perl data type
print $rexp->to_perl;
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.
Returns a hash reference to the object's attributes.
Returns the name of the corresponding R SEXP type, as listed in SEXPTYPE.
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.
Returns TRUE if the object is an R NULL
object. In REXP
's class hierarchy, this is the case only for Rserve::REXP::Null
.
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.
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
.
REXP
overloads the stringification, eq
and ne
methods. Subclasses further specialize for their types if necesssary.