you can also use perl's $, variable to set the "output field seperator" to put tabs in between a elements passed to print in a list.
i.e.
rather than:
print join "\t", @ItemList;
you could do:
local $, = "\t";
print @ItemList;
doing a quick profile of these showed only a 3-4% increase in speed so code readability might outweigh performance in this case