Разветвленные процессы имеют свои собственные копии (ну, например, копии при записи) памяти родительского процесса. Запись в хэш дочернего процесса не повлияет на хэш родительского процесса.
Чтобы делать то, что вы хотите, вам нужно использовать какой-то IPC. См. Справочную страницу perlipc для подробного обсуждения различных возможностей.
Для чего-то подобного я бы, вероятно, использовал что-то простое, например, хэш на диске. DB_File предоставляет приятный интерфейс с привязанным хешем. Вот как вы можете это сделать:
use strict;
use warnings;
use DB_File;
tie my %output, "DB_File", "output.dat" ;
foreach my $item( @AllItems) {
my $pid = $pm->start and next;
$output{$item} = qx($item);
$pm->finish;
}