2011-11-03 38 views
10

Làm cách nào tôi có thể nhận được thời gian tính bằng mili giây trong Perl mà không cần cài đặt thêm bất kỳ gói nào?Nhận thời gian tính bằng mili giây mà không cần cài đặt thêm gói?

Tôi đang chạy Linux.

+3

'date +% N 'cung cấp cho bạn nano giây ... bạn có thể làm việc từ đó? % s cho giây sinds 1970 ... – Konerak

+5

Bất kỳ lý do nào bạn không thể sử dụng 'Time :: HiRes'? – Polynomial

+3

Tại sao bạn không thể cài đặt một mô-đun? Bất kể, tùy thuộc vào phiên bản Perl của bạn, bạn có thể có Time :: HiRes (http://perldoc.perl.org/Time/HiRes.html) có sẵn. –

Trả lời

22

Time::HiRes là một phần cốt lõi kể từ Perl 5.7.3. Để kiểm tra tính sẵn có của nó, hãy kiểm tra phiên bản Perl, perl -v hoặc cố gắng sử dụng nó với perl -e 'use Time::HiRes;', cả hai từ dòng lệnh.

sử dụng mẫu:

use Time::HiRes qw/ time sleep /; 

my $start = time; 
sleep rand(10)/3; 
my $end = time; 

print 'Slept for ', ($end - $start) , "\n"; 

Để xây dựng trên bình luận Konerak, nếu nó không phải là có hay không có thể được sử dụng, sử dụng có nguồn gốc Linux lệnh qua backticks:

sub time_since_epoch { return `date +%s.%N` } 

print time_since_epoch; 
+0

phải là' ngày +% s.% N' – mob

+0

Để tải và/hoặc xác minh mô-đun từ dòng lệnh bạn có thể sử dụng: perl -MTime :: HiRes -e 1 thay cho: perl -e 'use Time :: HiRes' – JRFerguson

+0

@mob: Cảm ơn bạn đã sửa. @ James_R_Ferguson: Tôi cố tình bỏ qua cờ '-M' vì tôi không muốn nhầm lẫn người hỏi với cú pháp (sử dụng' 1' thay vì '''' là một mẹo nhỏ tiện lợi mặc dù :). – Zaid

Các vấn đề liên quan