in reply to Working with an Array of Array Names

Please see Why it's stupid to 'use a variable as a variable name'. use strict; will reveal these errors.

One solution:

my %vehicle; @{$vehicle{truck}} = (1, 2, 3, 4);