> > Hi All, > > I my perl script is crashing perl at this line; > > $image->Read (file=> \*ARGV); > > I know that it is this line because I have commented out everything else > around it. When I just have the Read statment, perl will crash. Here is > the script, can someone please suggest what I am doing wrong. > > Thanks! > ---------------------------------------------------------------------------- > --------------------- > #!/user/local/bin/perl -w > > use strict; > use Image::Magick; > > my $images = "C:/images"; > opendir (IMAGES, $images) or die "can not open $images: $!"; > > # load @ARGV for (<>) > > @ARGV = map { "$images/$_" } grep { !/^\./ } readdir IMAGES; >
my @files = map { "$images/$_" } grep { !/^\./ } readdir IMAGES; Not sure why you are using @ARGV just for its special qualities (aka the <> operator) why not name our variables, we are allowed too. > my $image = Image::Magick->new(magick=>'JPEG'); > > # Read images, Scale down and Write to new directory > > while (<>) { No need to use a while here, since you already have a complete array, foreach my $file (@files) { > $image->Read (file=> \*ARGV) By naming our variables we now see that we are dealing with a filename, rather than a typeglob reference. $image->Read(file => $file) The example you are using assumes that *ARGV contains an opened filehandle to the file itself, *but* within the loop you are executing on each line. See perldoc perlop for more. I would skip using the special nature of the variables until you understand them. Try using specifically named variables until the program works, then reduce it if you must. > and $image->Scale (width=>'50', height=>'50') > and $image->Write ("C:/images") C<Write> expects a filename argument, not a directory, or a handle. > and close (ARGV); Not sure why these statements are strung together with C<and> they can be separate, you haven't really benefited by making them a single statement. And you wouldn't normally close ARGV. > } > > closedir IMAGES; > You can close your dir earlier in the process, since you are done reading from it. > Brian Volk > HP Products > 317.289.9950 x1245 > <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED] > http://danconia.org -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>