[{"R type":"`double` (length-1)","Notes":"R has no bare scalar; everything is a vector","PDL equivalent":"`double(3.14)` — shape `()`","Perl equivalent":"`$x = 3.14` (scalar)"},{"R type":"`integer` (length-1)","Notes":"","PDL equivalent":"`long(42)`","Perl equivalent":"`$n = 42` (scalar)"},{"R type":"`logical` (length-1)","Notes":"Perl uses truthiness; PDL uses 0/1 byte","PDL equivalent":"`byte(1)`","Perl equivalent":"`$flag = 1` / `$flag = 0`"},{"R type":"`double` vector","Notes":"PDL: contiguous; `@arr`: pointer array","PDL equivalent":"`double(1.1, 2.2, 3.3)`","Perl equivalent":"`@arr = (1.1, 2.2, 3.3)`"},{"R type":"`integer` vector","Notes":"","PDL equivalent":"`long(1, 2, 3)`","Perl equivalent":"`@arr = (1, 2, 3)`"},{"R type":"`logical` vector","Notes":"","PDL equivalent":"`byte(1, 0, 1)`","Perl equivalent":"`@flags = (1, 0, 1)`"},{"R type":"`complex` vector","Notes":"Perl needs `Math::Complex`; PDL has native support","PDL equivalent":"`cdouble(...)`","Perl equivalent":"— (no built-in)"},{"R type":"`character` vector","Notes":"PDL operates on numbers only","PDL equivalent":"— (not numeric)","Perl equivalent":"`@strs = ('a','b')`"},{"R type":"`raw` vector","Notes":"","PDL equivalent":"`byte(...)`","Perl equivalent":"`pack('C*', @bytes)`"},{"R type":"`NA`","Notes":"PDL bad-values propagate like R's `NA`","PDL equivalent":"Bad-value in ndarray","Perl equivalent":"`undef`"},{"R type":"`NULL`","Notes":"","PDL equivalent":"—","Perl equivalent":"`undef` in list context"},{"R type":"`list`","Notes":"","PDL equivalent":"—","Perl equivalent":"`@array` or reference `\\@array`"},{"R type":"named `list`","Notes":"","PDL equivalent":"—","Perl equivalent":"`%hash` or `\\%hash`"},{"R type":"`matrix` (2-D)","Notes":"PDL: column-major; R: column-major","PDL equivalent":"2-D ndarray `pdl([[...],[...]])`","Perl equivalent":"array-of-arrays `@aoa`"},{"R type":"`array` (N-D)","Notes":"","PDL equivalent":"N-D ndarray `$x->reshape(...)`","Perl equivalent":"nested references"},{"R type":"`data.frame`","Notes":"No single PDL type maps exactly","PDL equivalent":"2-D ndarray (numeric cols) + Perl hash (mixed)","Perl equivalent":"`%hash` of `@arrays`"},{"R type":"`factor`","Notes":"","PDL equivalent":"`long` ndarray + Perl `@levels` array","Perl equivalent":"hash lookup table + `@indices`"},{"R type":"`environment`","Notes":"","PDL equivalent":"—","Perl equivalent":"`%hash` or package namespace"},{"R type":"`function` / closure","Notes":"PDL PP defines compiled kernels","PDL equivalent":"—","Perl equivalent":"`sub { ... }` / closure"},{"R type":"`S3 / S4 object`","Notes":"PDL objects are first-class Perl objects","PDL equivalent":"PDL object (blessed ndarray)","Perl equivalent":"blessed reference + method dispatch"}]