constants are basically just sub FOO () { ... } (Constant Functions). So I first tried your @{ STEPPER_SEQUENCE }, but Perl reminded me: Ambiguous use of @{STEPPER_SEQUENCE} resolved to @STEPPER_SEQUENCE and Global symbol "@STEPPER_SEQUENCE" requires explicit package name. However, once you disambiguate:
use constant STEPPER_SEQUENCE => [ [qw(1 0 0 1)], [qw(1 0 0 0)], [qw(1 1 0 0)], [qw(0 1 0 0)], [qw(0 1 1 0)], [qw(0 0 1 0)], [qw(0 0 1 1)], [qw(0 0 0 1)], ]; print 0+@{STEPPER_SEQUENCE()}, "\n"; print 0+@{+STEPPER_SEQUENCE}, "\n"; print 0+@{&STEPPER_SEQUENCE}, "\n"; __END__ 8 8 8
Update: The thread constant vector might be relevant here too. Also added the third example, although note that calls to constant functions with & are not subject to inlining.
In reply to Re: Get element count of CONSTANT list (aref))
by haukex
in thread [SOLVED] Get element count of CONSTANT list (aref))
by stevieb
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |