---
name: "Statistics::R::REXP::List"
section: "3pm"
platform: "linux"
package: "libstatistics-r-io-perl"
version: "1.0002-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Statistics::R::REXP::List"
---

# Statistics::R::REXP::List(3pm)

an R generic vector (list)

## NAME

Statistics::R::REXP::List - an R generic vector (list)

## VERSION

version 1.0002

## SYNOPSIS

```
    use Statistics::R::REXP::List

    my $vec = Statistics::R::REXP::List->new([
        1, '', 'foo', ['x', 22]
    ]);
    print $vec->elements;
```

## DESCRIPTION

An object of this class represents an R list, also called a generic vector (`"VECSXP"`). List elements can themselves be lists, and so can form a tree structure.

## METHODS

`"Statistics::R::REXP:List"` inherits from Statistics::R::REXP::Vector, with no added restrictions on the value of its elements. Missing values (`"NA"` in R) have value `"undef"`.

- sexptype

  SEXPTYPE of generic vectors is `"VECSXP"`.

- to\_pl

  Perl value of the list is an array reference to the Perl values of its `"elements"`, but using a scalar value to represent elements that are atomic vectors of length 1, rather than a one-element array reference.

  The idea is that in R, `"1:3"`, and `"list(1, 2, 3)"` can often be used interchangeably, even though the list is really composed of three integer vectors, each of length one. Now, both will have native Perl representation of `"[1, 2, 3]"`.

  This only applies to elements that are atomic vectors. An element of type list will always be represented as an array reference:

  `"list(list(1), list(2), list(3))->to_pl"` -\> `"[ [ 1 ], [ 2 ], [ 3 ] ]"`

## BUGS AND LIMITATIONS

Classes in the `"REXP"` hierarchy are intended to be immutable. Please do not try to change their value or attributes.

There are no known bugs in this module. Please see Statistics::R::IO for bug reporting.

## SUPPORT

See Statistics::R::IO for support and contact information.

## AUTHOR

Davor Cubranic \<cubranic@stat.ubc.ca\>

## COPYRIGHT AND LICENSE

This software is Copyright (c) 2017 by University of British Columbia.

This is free software, licensed under:

```
  The GNU General Public License, Version 3, June 2007
```
