मैं एक पर्ल स्क्रिप्ट लिखने का प्रयास कर रहा हूं जो एक लॉग को पार करता है जहां प्रत्येक पंक्ति पर दूसरी पंक्ति तिथि होती है। स्क्रिप्ट तीन तर्कों में होती है: इनपुट लॉग फ़ाइल, प्रारंभ समय, और अंत समय। प्रारंभ और समाप्ति समय का उपयोग प्रत्येक पंक्ति पर एक निश्चित मूल्य को पार करने के लिए किया जाता है जो कि उन दोनों के बीच आता है। लेकिन इसे ठीक से चलाने के लिए मैं युग के समय की शुरुआत और समाप्ति समय को परिवर्तित कर रहा हूं। मेरी समस्या यह है कि लूप 'i' मान को लॉग फ़ाइल के विरुद्ध तुलना करने के लिए सामान्य समय पर सामान्य रूप से परिवर्तित करना है। localtime($i)
चलाने के बाद मैं मान मुद्रित करता हूं और केवल वास्तविक संदर्भ नहीं मुद्रित संदर्भ देखता हूं।मैं पर्ल में युग के समय को सामान्य समय में कैसे बदलूं?
#!/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";
उत्पादन लगता है:
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
मैं केवल कोर पर्ल मॉड्यूल की पहुंच है और
यहाँ स्क्रिप्ट मैं अब तक किया है (यह कार्य प्रगति पर है) किसी अन्य को स्थापित करने में असमर्थ हूं।
इस होमवर्क है? और "किसी अन्य को स्थापित करने में असमर्थ" का अर्थ है कि आपने पढ़ा नहीं है [लेकिन मैं सीपीएएन का उपयोग नहीं कर सकता!] (Http://www.shadowcat.co.uk/blog/matt-s-trout/but-i -कंट-उपयोग-सीपीएन /) – Ether
यह काम के लिए एक बड़ी लिपि की शुरुआत है, और मेरा काम केवल मुझे कोर पर्ल मॉड्यूल का उपयोग करने की अनुमति देगा। हमने अभी पर्ल का उपयोग करना शुरू कर दिया है और कोर मॉड्यूल अनुमोदित हैं और वे दूसरों का परीक्षण कर रहे हैं, लेकिन मॉड्यूल का उपयोग करने और इसे उपयोग करने की अनुमति देने के लिए तीन महीने प्रतीक्षा समय है। –
@ मैट: उस मामले में मैं http://careers.stackoverflow.com पर अपना रेज़्यूमे सबमिट करने की अनुशंसा करता हूं। – Ether