|Think about Loose Coupling|
There is a bug with your regexes. If you want to find a gif filename, you have to use something like this:
Otherwise you will also find a file bgifblue.txt for example. The same problem is with the png and jpeg regexes
If this doesn't solve the issues, read on:
How many of your gifs (or pngs) cause the error? All of them or only one? If you look at the code in GIF.pm, it dies when it finds anything else but a 0xF9 after identifying a Graphics Control Extension, which seems to be used for specifiying the animation in animated gifs.
I can think of a few possibilities:
1) If you only have one gif with the problem, it likely is a corrupted gif.
2) If you have only one or a few gifs with the problem, it might be some never version of gif, where there could be something other than 0xF9 at that position
3) If all your gifs have this problem then the parser in GIF.pm is probably bugged
I checked the CPAN source of PDF::API2::Resource::XObject::Image for the png error and I don't see how an undefined value can surface there. Either I didn't see the bug or maybe you have an older version of any of the libraries PDF::API2::Resource::XObject::Image, PDF::API2::Basic::PDF::Utils, PDF::API2::Basic::PDF::Number or PDF::API2::Basic::PDF::String