sub min($$){ $_[0]<$_[1]?$_[0]:$_[1] }; my $app_w = 400; my $app_h = 300; my $image_w = 200; my $image_h = 600; my $y_scale = $app_w / $image_w; my $x_scale = $app_h / $image_h; my $factor = min $app_w,$app_h / min $image_w,$image_h; printf("xs: %s, ys: %s, factor: %s", $x_scale, $y_scale, $factor);