in reply to dereferencing problem

Use the line that's commented (return ($width, $height);) instead of the one w/ the backslash. There's no reason to return references in this case. (Update: Oh yes, and of course remove all the dereferencing.)

If you get inaccurate results then, then it's a problem with the routine and you should scrap it. Some possible alternates include GD and Image::Magick.

Update: Oh, and just FYI, the two lines:

return \($width, $height); # and... return (\$width, \$height);

do exactly the same thing. In other words, taking a reference to a list (not an array, mind you) returns a list whose elements are all references to the elements in the original list.

bbfu
Black flowers blossum
Fearless on my breath