my $r = shift; ... my $im_ext = accepts_png($r) ? "png" : "jpg"; print qq{<IMG SRC="arrow.$im_ext">}; ... $r->header_out('Vary', 'accept'); ... sub accepts_png { # naïve approach my $r = shift; $r->header_in("Accept") =~ m|image/png|i; }