in reply to Re^2: system call to ImageMagick with many parameters fails
in thread system call to ImageMagick with many parameters fails

You didn't miss much, but I missed a single quote at the start of my list.

Change

my @cmd = ( "convert, ... ], $rrfile" );

to

my @cmd = ( "convert", ... ], $rrfile );

What you should put into @cmd is the list of arguments, and not a string containing that list.

Replies are listed 'Best First'.
Re^4: system call to ImageMagick with many parameters fails
by august (Initiate) on Sep 24, 2009 at 21:22 UTC
    ... and now it tells me:

    syntax error at ./IMTest33.pl line 22, near "]" (Might be a runaway multi-line [] string starting on line 10) Execution of ./IMTest33.pl aborted due to compilation errors.

    Guess I need some commas somewhere or...?

      Here is your changed code with the syntax errors fixed:

      #!/usr/bin/perl -w #use Image::Magick; # you don't need that if you shell out to convert use strict; my $file="1251748705.jpg"; my $rfile="thumbnail.gif"; my $rrfile="thumbnail2.png"; my @cmd = ( "convert", # added the double quote here $rfile, qw[( +clone -threshold -1 -virtual-pixel black -spread 10 -blur 0x3 -threshold 50% -spread 1 -blur 0x.7 ) +matte -compose Copy_Opacity -composite ], $rrfile ); # removed a double quote here #system("convert -size 500x180 $file -auto-orient -thumbnail 250x90 + -unsharp 0x.5 $rfile"); print "About to run [@cmd]\n"; system(@cmd) == 0 or die "Couldn't launch [@cmd]: $!/$?";

      This program compiles for me. As I don't have the convert executable, I can't tell you whether it does what it should.

      For further reading, you might want to read perlop about the "Quotes and Quote-like Operators".

        Yessir.. it works! Thanks a lot.