Ich weiß nicht genau was du mit pre load meinst, aber ich würde einfach einen Tk::Tiler benutzen.
Dann kannst du mit $Tiler->manage(), innerhalb einer foreach-Schleife, Labels hinzufügen, welche deine Bilder enthalten, die du in einem Array, das du mit opendir(), readdir(), closedir() gefüllt hast, speicherst.
JPEG-Bilder lade ich folgendermaßen, und ich bekomme keine Fehlermeldung, es geht nichts schief:
#!/usr/bin/perl -w
#
use strict;
use Tk;
use Tk::JPEG;
my $mw = tkinit();
my $photo = $mw->Photo(-file => "test.jpg");
my $label = $mw->Label(-image => $photo)->pack();
MainLoop;
MfG. Matze
Mit freundlichen Grüßen: Matze