#!/usr/bin/perl use warnings; use strict; use Image::Magick; use File::Basename; my $image = Image::Magick->new; umask 0022; my @pics= ; my @exts = qw(.jpg .gif .png); foreach my $pic (@pics){ my ($basename,$path,$suffix) = fileparse($pic,@exts); my $ok; $ok = $image->Read($pic) and warn ($ok); rename ($pic, "$pic.bak") or warn $!; my $resize = "$basename.jpg"; $image->Scale(geometry => '500x500'); $ok = $image->Write("pics/$resize") and warn ($ok); undef @$image; #needed if $image is created outside loop print "$pic ->resize to pics/$resize\n"; }