2017-01-04 9 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

 Смежные вопросы

  • Нет связанных вопросов^_^