NAS, действительно, можно было хотя бы вордом пробежаться.
А в коде, либо my вообще убрать, либо придерживаться use strict; (лучше приучиться сразу использовать второй вариант)
use Image::Magick; #используем модуль
use strict;
my($image, $x, $ox, $oy, $nx, $nnx); #переменные
$image = Image::Magick->new; #новый проект
$x = $image->Read("photo.jpg"); #открываем файл
($ox,$oy)=$image->Get(\'base-columns\',\'base-rows\'); #определяем ширину и высоту изображения
$nx=int(($ox/$oy)*150); #вычисляем ширину, если высоту сделать 150
$image->Resize(geometry=>geometry, width=>$nx, height=>150); #Делаем resize (изменения размера)
if($nx>200) { #Если ширина получилась больше 200
$nnx=int(($nx-200)/2); #Вычисляем откуда нам резать
$image->Crop(x=>$nnx, y=>0); #Задаем откуда будем резать
$image->Crop(\'200x150\'); #С того места вырезаем 200х150
}
$x = $image->Write("photo.jpg"); #Сохраняем изображение.