0

私のスクリプトはダウンロード URL を要求し、それらをダウンロード キューに送信します。ダウンロードの進行状況が印刷されます。

プロンプトを一番下に置いて、その上にステータスを表示する方法が見つかりません。CPAN で検索してみましたが、モジュールが見つかりませんでした。

助けてくれてありがとう。

#!/usr/bin/perl
use 5.14.0;
use strict;
use warnings;
use Term::UI;
use Term::ReadLine;
use threads;
use Thread::Queue;

sub rndStr{ join'', @_[ map{ rand @_ } 1 .. shift ] }

my $q = Thread::Queue->new(); # A new empty queue
my $thr = threads->create(
  sub {
    while (defined(my $item = $q->dequeue())) {
      say "Downloading: ".$item;
      sleep 1;
      #$q->enqueue(1..10) if $item eq '10';
      $q->enqueue(rndStr rand (15)+5, 'a'..'z', 0..9);
    }
  }
);

$q->enqueue(rndStr 10, 'a'..'z', 0..9);
my $url;
my $term = Term::ReadLine->new('brand');
while ($url ne 'end'){
  $url = $term->get_reply( 
      prompt => 'URL to download',
      default => 'end' );
  $q->enqueue($url);
}
say "Finishing remaining downloads";
$q->enqueue(undef);
$thr->join();
4

2 に答える 2