Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hello again Monks,
I am trying to run the program below (make_thumbnail.pl) from the command line.

perl make_thumbnail.pl -dir thumb ezwindow.gif
The "thumb" directory is created when I call the script.
Image::Magic Version : 5.47 Perl Version 5.008
Then I get these errors...any ideas..Thanks

Can't locate object method "new" via package "Image::Magik" (perhaps y +ou forgot to load "Image::Magik"?) at make_thumbnail.pl line 22 (#1) (F) You said to do (or require, or use) a file that couldn't be found. Perl looks for the file in all the locations mentioned in @ +INC, unless the file name included the full path to the file. Perhaps +you need to set the PERL5LIB or PERL5OPT environment variable to say w +here the extra library is, or maybe the script needs to add the library + name to @INC. Or maybe you just misspelled the name of the file. See perlfunc/require and lib. Uncaught exception from user code: Can't locate object method "new" via package "Image::Magik" (p +erhaps you forgot to load "Image::Magik"?) at make_thumbnail.pl line +22.
#!/usr/bin/perl -w use strict; use diagnostics; use Image::Magick; use Getopt::Long; use File::Basename; my $out_dir = 'icons'; my $geometry= '120x120'; my $img = 'ezwindow.gif'; GetOptions( 'geometry=s' => \$geometry, 'directory=s' => \$out_dir, ); mkdir $out_dir, 0777 or die "Cannot create $out_dir: $!" unless -d $ou +t_dir; foreach my $img (@ARGV) { my $rc; LINE 22------- >>>>my $im = Image::Magik->new(); $rc = $im->Read($img); warn($rc), next if $rc; my $basename = basename $img; $basename =~ s/\.\w+$//; $rc = $im->Write("PNG:$out_dir/$basename.png"); warn($rc) if $rc; }

Replies are listed 'Best First'.
Re: Can't locate object method "new" via package "Image::Magik"
by VSarkiss (Monsignor) on Nov 07, 2002 at 18:57 UTC

    You have a typo:use Image::Magick; followed by:my $im = Image::Magik->new(); Notice the missing "c" in "Magick". I'm guessing it's not just a copy-and-paste thing.

      Well that's 2 times today I fell stupid. Obviously my brain does not want to read today.
      Thanks for your help