use Image::Size; my ($w, $h) = imgsize("blort.jpg"); if ($w > 800) { my $f = $w / 800; $w = int($w/$f); $h = int($h/$f) }; if ($h > 600) { my $f = $h / 600; $w = int($w/$f); $h = int($h/$f) };