タイムラインを取ってきて表示するだけのサンプル。tail -fみたいに表示できるようにすると面白いかも?
#!/usr/bin/perl
use Net::Netrc;
use Net::Twitter;
use encoding 'utf-8';
# login
my $mach = Net::Netrc->lookup('twitter.com') or die "can't read twitter account information from ~/.netrc...";
my $login = $mach->login;
my $pass = $mach->password;
my $twit = Net::Twitter->new(username=>$login, password=>$pass);
my $timeline_ref = $twit->following_timeline();
foreach my $s (@$timeline_ref) {
print "$s->{user}{name} : $s->{text}\n";
}
ログインに必要な情報はNet::Netrcを使って.netrcから取得しています。~/.netrcに
machine twitter.com login ユーザ名 password パスワード
みたいな行を書いておくとOKです。
#久しぶりにPerlを使ったら、参照の使い方を忘れていて小一時間はまってしまった罠(汗
少し思うところがあって、単にddを並列起動してダミーデータを書き込むだけのプログラムを作ってみたり。
#!/usr/bin/perl
use threads;
use Time::HiRes qw(gettimeofday tv_interval);
$dir = "/mnt/tmp/";
$size_m = 50;
$parallel_num = 32;
$test_count = 50;
my @ts;
print "dd_parallel_test start!!!\n";
my $st = [gettimeofday];
foreach my $n (1..$test_count) {
print "test_count = $n\n";
@ts = ();
foreach my $i (1..$parallel_num) {
my $t = threads->new(\&dd_exec, $i, $dir, $size_m);
push(@ts, $t);
}
foreach my $t (@ts) {
$t->join;
}
}
my $diff = tv_interval($st, [gettimeofday]);
print $i . "dd_parallel_test finished...time=$diff(sec)\n";
#
sub dd_exec
{
my ($i, $dir, $size_m) = @_;
my $st = [gettimeofday];
print "start thread $i(dir=$dir, size_m=$size_m M)\n";
my $tmp_file = "$dir/tmp_file.$i";
my $cmd = "dd if=/dev/urandom of=$tmp_file bs=1M count=$size_m >/dev/null 2>&1";
system($cmd);
$cmd = "rm -rf $tmp_file";
system($cmd);
my $diff = tv_interval($st, [gettimeofday]);
print $i . "finished...time=$diff(sec)\n";
}