Returns the total number of pipe segments that are stacked in this container, computed recursively. So if the container has three stacked pipes attached, each of which consist of four pipes, this method will return 12.

Takes a list of indices and returns the stacked pipes indicated by those indices. If only one index is given, the corresponding array element is returned. If several indices are given, the result is returned as an array in list context or as an array reference in scalar context.

Get or set the array of stacked pipes. If called without an arguments, it returns the array in list context, or a reference to the array in scalar context. If called with arguments, it expands array references found therein and sets the values.

Removes the stacked pipes designated by the offset and the length from the array, and replaces them with the pipes of the list, if any. In list context, returns the pipes removed from the array. In scalar context, returns the last pipe removed, or undef if no pipes are removed. The array grows or shrinks as necessary. If the offset is negative then it starts that far from the end of the array. If the length is omitted, removes everything from the offset onward. If the length is negative, removes the pipes from the offset onward except for -length elements at the end of the array. If both the offset and the length are omitted, removes everything. If the offset is past the end of the array, it issues a warning, and splices at the end of the array.