技術ブログを書いたほうがいいということで書き綴ってみた

技術ブログを書いたほうがいいということで書き綴ってみた

Time::HiResモジュールがないというコンパイルエラーが発生した際の対処方法

Time::HiResモジュールがないというコンパイルエラーが発生した際の対処方法

# perl -c test.pl

コンパイルエラー発生

Can't locate Time/HiRes.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at test.pl line 4.

そんなときは、以下で解決

yum install perl-Time-HiRes
================================================================================
 Package                Arch          Version                 Repository   Size
================================================================================
Installing:
 perl-Time-HiRes        x86_64        4:1.9721-141.el6        base         49 k

Transaction Summary
================================================================================
Install       1 Package(s)

Total download size: 49 k
Installed size: 56 k

Downloading Packages:
perl-Time-HiRes-1.9721-141.el6.x86_64.rpm                |  49 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : 4:perl-Time-HiRes-1.9721-141.el6.x86_64                      1/1
  Verifying  : 4:perl-Time-HiRes-1.9721-141.el6.x86_64                      1/1

Installed:
  perl-Time-HiRes.x86_64 4:1.9721-141.el6

Complete!

これで、usleepが使えて、処理時間の計測ができる。 サンプルコードは、以下。

use strict;
use Time::HiRes qw/ usleep /;
my $microseconds = 5000;
my $start_time = Time::HiRes::time;

usleep ( $microseconds );

printf "%0.3fus\n",Time::HiRes::time - $start_time ;

実行結果は、 0.007us

っん?そんなにusleepは正確じゃないんだね。