my $image_name = 'foobar.jpg'; #from user my $upload_dir = '../clients/images'; #hard coded $self->make_thumb($image_name, $upload_dir, 'jpeg'); sub make_thumb { my $self = shift; use Imager; my ($image_name, $upload_dir, $file_exten) = @_; ........ imager stuff here .......... $image_name =~ /^(\w+)\.(\w+)$/; $image_name = $1; my $to_write = $upload_dir.'/'.$image_name.'_thumb.jpg'; #$to_write =~ /(.*)/; $to_write = $1; #this didn't help $img->write(file=>$to_write, type=>$file_exten) or $self->push_error("Cannot write thumbname because: $!"); }