2017-01-04 10 views
0

私はPerl(5.16)とImageMagick(6.8.8)を使用しています。私は、新しいImageMagickオブジェクトを参照によってサブルーチンに送りたいと思いますが、オブジェクトを修正していますが、 "メソッドを呼び出せません"というメッセージが表示されます。明らかに、私はサブルーチンでオブジェクトを適切に扱っていません。誰も助けることができますか?ありがとう。Perl:サブルーチンのImageMagickオブジェクトを変更する

my $im=Image::Magick->new; 
ModifyImage(\$im,$f); 

sub ModifyImage { 
    my $im=shift; 
    my $file=shift; 
    my $res = $im->Read($file); 
    warn $res if $res; 
} 

答えて

2

あなたImage::Magickオブジェクト$imは、すでにデータへの参照を保持しています。あなたは、変数への参照を行う必要はありません、そして、あなたの呼び出しが

ModifyImage($im, $f); 

のようになります。そして、私はそれをより簡潔にするために、そして作るために、この

sub ModifyImage { 
    my ($im, $file) = @_; 

    my $res = $im->Read($file) 
    warn $res if $res; 
} 

のようなサブルーチンを書きます$im$fileがパラメータであることがわかります。

+0

ああ、意味があります。ありがとう、それは今働いている。 – MrSparkly

関連する問題