2011-12-29 2 views
-1

Я хочу захватить все изображения на веб-странице, используя эту программу. Но когда я запускаю эту программу, я получал один и тот же образ в 10 раз вместо разных. Я думаю, проблема была в режиме bin или в заявлении на печать «$ pic-> image», который не смог очистить старое содержимое обработчика файлов.Не удалось очистить обработчик режима бит. Изображение :: Захват в Perl

#!/usr/bin/Perl 
# pics.pl 

# Grabs multiple images from a webpage 

use Image::Grab; 

$pic = new Image::Grab; 

# Specify the total no of pages 
$totalpages = 1; 
$idx2 = 1; 
$idx3 = 10; 

for($idx = 1; $idx <= $totalpages; $idx++) 
{ 
    $idx4 = 1; 
    $pic->regexp(".*\.jpg"); 
    $pic->search_url("http://www.freedigitalphotos.net/images/Recycling_g385.html"); 
    for ($idx2 = $idx2; $idx2 <= $idx3; $idx2++) 
    { 
    $pic->index('$idx4'); 
    $pic->grab; 
    $name = 'image'.$idx2.'.jpg'; 
    open(IMAGE, ">$name") || die "$name: $!"; 
    binmode (IMAGE); 
    print IMAGE $pic->image; 
    close (IMAGE); 
    $idx4++; 
    } 
    $idx3 = $idx2+10; 
} 

спасибо.

+3

'' $ idx4'' равно нулю в числовом контексте. Возможно, вы заметили это, если вы включили «предупреждения». – friedo

ответ

2

Вы положили $ idx4 здесь $ pic-> index ('$ idx4'); внутри одиночных кавычек. Кроме того, пожалуйста, используйте strict & Предупреждения pragmas в ваших скриптах, это поможет вам легко отлаживать.