Her satırda ikinci değerin tarih olduğu bir günlüğü ayrıştıran bir Perl komut dosyası yazmayı deniyorum. Komut üç argüman alır: giriş günlük dosyası, başlangıç zamanı ve bitiş zamanı. Başlangıç ve bitiş zamanı, her bir satırdaki belirli bir değeri, bu iki zaman arasında düşecek şekilde ayrıştırmak için kullanılır. Fakat bunu düzgün bir şekilde çalıştırmak için başlangıç ve bitiş zamanlarını dönme zamanına dönüştürüyorum. Benim sahip olduğum sorun, log dosyasına karşı karşılaştırmak için döngüler 'i' değerini normal zamana dönüştürmektir. localtime($i)
'u çalıştırdıktan sonra değeri yazdırıyorum ve sadece gerçek değeri basmayan bir referans görüyorum. Ben sadece çekirdek Perl modüllerinin erişebilir vePerl'de zaman kavramını normal zamana nasıl dönüştürebilirim?
Time::tm=ARRAY(0x8cbbd40)
Time::tm=ARRAY(0x8cbc1a0)
Time::tm=ARRAY(0x8cbbe80)
Time::tm=ARRAY(0x8cbc190)
Time::tm=ARRAY(0x8bbb170)
Time::tm=ARRAY(0x8cbc180)
Time::tm=ARRAY(0x8cbbf30)
Time::tm=ARRAY(0x8cbc170)
Time::tm=ARRAY(0x8cbc210)
Time::tm=ARRAY(0x8cbc160)
1275760356 1275760773
: gibi
#!/usr/bin/perl
use strict;
use warnings;
use Time::Local;
use Time::localtime;
use File::stat;
my $sec = 0;
my $min = 0;
my $hour = 0;
my $mday = 0;
my $mon = 0;
my $year = 0;
my $wday = 0;
my $yday = 0;
my $isdst = 0;
##########################
# Get the engine log date
##########################
my $date = `grep -m 1 'Metric' "$ARGV[0]" | awk '{print \$2}'`;
($year,$mon,$mday) = split('-', $date);
$mon--;
#########################################
# Calculate the start and end epoch time
#########################################
($hour,$min,$sec) = split(':', $ARGV[1]);
my $startTime = timelocal($sec,$min,$hour,$mday,$mon,$year);
($hour,$min,$sec) = split(':', $ARGV[2]);
my $endTime = timelocal($sec,$min,$hour,$mday,$mon,$year);
my $theTime = 0;
for (my $i = $startTime; $i <= $endTime + 29; $i++) {
#print "$startTime $i \n";
$theTime = localtime($i);
#my $DBInstance0 = `grep "$hour:$min:$sec" "$ARGV[0]"`;# | grep 'DBInstance-0' | awk '{print \$9}'`;
#print "$DBInstance0\n";
print "$theTime\n";
}
print "$startTime $endTime \n";
çıkış arar: Burada
var bugüne kadar script (devam eden bir çalışmadır) başkalarını yükleyemiyorum.
bu ödev mi? Ve "başkalarını kuramaz" sadece okumadığınız anlamına gelir [Ama CPAN'ı kullanamıyorum!] (Http://www.shadowcat.co.uk/blog/matt-s-trout/but-i -cant-use-cpan /) – Ether
Bu, iş için daha büyük bir komut dosyasının başlangıcıdır ve işim sadece çekirdek perl modüllerini kullanmama izin verecek. Perl kullanmaya başladık ve çekirdek modüller onaylandı ve başkalarını test ediyorlar, ancak bir modül kullanmayı ve onu kullanmasına izin vermekten üç aylık bekleme süresi var. –
@Matt: Bu durumda özgeçmişinizi http://careers.stackoverflow.com adresine göndermenizi öneririm. – Ether