You won't usually do this because an array may hold any number of items, and a given format string will only accept a certain fixed number of items.
# Can be tricky to pull off, but also handy in debugging:
my @items = qw(wilma dino pebbles);
my $format = "The items are:\n" . ("%10s\n" x @items); # replicate given string the numbers of times given by @items
# In this case its 3, as the array is first evaluated in scalar context.
printf $format, @items; # Output string is the same as if you wrote: 'The items are:\n%10s\n%10s\n%10s\n'.
# The output prints each item on its own line, right-justified in a 10-character column, under a heading line.
# You can also combine the two lines:
printf "The items are:\n" . ("%10s\n" x @items), @items;
# Here, @items is used once in scalar (to get length), and once in list context(to get its contents).