По существу нет имени разницы между $array[1]
и $array1
. Существует программная разница в том, что $array[1]
может быть «соединен», а в современных средах Perl $array1
- нет. Таким образом, я могу написать $array[$x]
для любого действительного $x
и получить элемент с «виртуальным именем» $array.$x
.
my @objects = map { MyClass->new( $_ ); } @data_array;
Таким образом, если вы просто хотите добавить число, вы, вероятно, просто хотите собрать свои объекты в массив. Однако, если вам нужна более сложная схема именования, возможно, вам подойдет один или несколько уровней хэшей.
Если у вас был способ извлечь имя из данных объекта после его формирования, и у вас был метод с именем name
, вы могли бы сделать это:
my %object_map
= map { my $o = MyClass->new( $_ ); ( $o->name => $o ); } @data_array
;