をダウンロードされたときに終了します。リモートデータを待つ間にSTDINを読み取ります。リモートデータは、私は簡単なperlスクリプトを持って
#!/usr/bin/env perl
use strict;
use Data::Dumper;
use utf8;
binmode(STDOUT, ":utf8");
$|++;
my $localBookmarks = {
a => "local bookmark A",
b => "local bookmark B",
c => "local bookmark C",
};
print Dumper $localBookmarks;
my $remoteBookmarks = getRemoteBookmarks();
print Dumper $remoteBookmarks;
print "choose a bookmark: ";
my $answer = <STDIN>;
print "You want: $answer";
# process $answer...
sub getRemoteBookmarks
{
# Net::SSH::Perl connection; exec command; parse it; return it
# lets just simulate this
sleep(5);
return { d => "remote bookmark D", e => "remote bookmark E" };
}
出力は次のようになります。もちろん
$ perl test.pl
$VAR1 = {
'b' => 'local bookmark B',
'a' => 'local bookmark A',
'c' => 'local bookmark C'
};
$VAR1 = {
'd' => 'remote bookmark D',
'e' => 'remote bookmark E'
};
choose a bookmark:
5秒間沈黙があるprint Dumper $localBookmarks
後。
"リモートブックマーク"を待っている間に "ローカルブックマーク"を印刷した直後に<STDIN>
を読むことはできますか?ローカルのブックマークがすべて私がこの時間を必要としていることを知っている場合(そして私はダウンロードのために数秒待つ必要はありません)。それ以外の場合、「リモートブックマーク」がダウンロードされると、現在の<STDIN>
は終了され、ダウンロードされたブックマークが印刷され、最後に - <STDIN>
になるはずです。これはperlで可能ですか?