Visit Our UNIX and Linux User Community


time stamp perl script error out of range 1..31


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting time stamp perl script error out of range 1..31
# 1  
Old 08-06-2009
time stamp perl script error out of range 1..31

Hi,

while running the perl script i am getting this error message ,
Day '' out of range 1..31 at rsty.sh line 44

what do iam missing in the script, any suggestion
#!/usr/bin/perl
use Time::Local;
my $wday = $ARGV[0];
my $month = $ARGV[1];
# convert the month shortname into 0-11 number
if ( $month eq "Jan" ) { $mon = 0 }
elsif ( $month eq "Feb" ) { $mon = 1 }
elsif ( $month eq "Mar" ) { $mon = 2 }
elsif ( $month eq "Apr" ) { $mon = 3 }
elsif ( $month eq "May" ) { $mon = 4 }
elsif ( $month eq "Jun" ) { $mon = 5 }
elsif ( $month eq "Jul" ) { $mon = 6 }
elsif ( $month eq "Aug" ) { $mon = 7 }
elsif ( $month eq "Sep" ) { $mon = 8 }
elsif ( $month eq "Oct" ) { $mon = 9 }
elsif ( $month eq "Nov" ) { $mon = 10 }
elsif ( $month eq "Dec" ) { $mon = 11 };
my $mday = $ARGV[2];
# initialize time varialble and split hours (24 hr format), minutes, seconds into an array
my $time = $ARGV[3];
@time = split /:/, $time;
# if the timezone is left out of the input, the position of year becomes 5th in ARGV
my $year = $ARGV[4];

$epoch= timelocal($time[2], $time[1], $time[0], $mday, $mon, $year);
print "$epoch\n";

Thanks
saha
# 2  
Old 08-06-2009
What is typical input (parms ) for your script?
# 3  
Old 08-06-2009
we are calling this script into another file where the parameter is
Sun Jul 31 11:58:54 2009
# 4  
Old 08-07-2009
Quote:
Originally Posted by saha
we are calling this script into another file where the parameter is
Sun Jul 31 11:58:54 2009
Most likely the arguments you pass the script aren't set/passed correctly because July (correctly set to 6 for Time::Local) does have 31 days. The code you posted works for me as-is.
# 5  
Old 08-07-2009
Quote:
Originally Posted by saha
we are calling this script into another file where the parameter is
Sun Jul 31 11:58:54 2009
Not sure how, but it seems like you are passing 2 or less parameters (instead of 5) to this Perl script:

Code:
$ 
$ cat testscr.pl
#!/usr/bin/perl
use Time::Local;
my $wday = $ARGV[0];
my $month = $ARGV[1];
# convert the month shortname into 0-11 number
if ( $month eq "Jan" ) { $mon = 0 }
elsif ( $month eq "Feb" ) { $mon = 1 }
elsif ( $month eq "Mar" ) { $mon = 2 }
elsif ( $month eq "Apr" ) { $mon = 3 }
elsif ( $month eq "May" ) { $mon = 4 }
elsif ( $month eq "Jun" ) { $mon = 5 }
elsif ( $month eq "Jul" ) { $mon = 6 }
elsif ( $month eq "Aug" ) { $mon = 7 }
elsif ( $month eq "Sep" ) { $mon = 8 }
elsif ( $month eq "Oct" ) { $mon = 9 }
elsif ( $month eq "Nov" ) { $mon = 10 }
elsif ( $month eq "Dec" ) { $mon = 11 };
my $mday = $ARGV[2];
# initialize time varialble and split hours (24 hr format), minutes, seconds into an array
my $time = $ARGV[3];
@time = split /:/, $time;
# if the timezone is left out of the input, the position of year becomes 5th in ARGV
my $year = $ARGV[4];

$epoch= timelocal($time[2], $time[1], $time[0], $mday, $mon, $year);
print "$epoch\n";
$ 
$ perl testscr.pl Sun Jul 31 11:58:54 2009
1249055934
$ perl testscr.pl Sun Jul 31 11:58:54
965059134
$ perl testscr.pl Sun Jul 31
965016000
$ perl testscr.pl Sun Jul
Day '' out of range 1..31 at testscr.pl line 25
$ perl testscr.pl Sun
Day '' out of range 1..31 at testscr.pl line 25
$ perl testscr.pl
Day '' out of range 1..31 at testscr.pl line 25
$ 
$

tyler_durden

Previous Thread | Next Thread
Test Your Knowledge in Computers #686
Difficulty: Medium
In reverse Polish notation, the operators follow their operands; for instance, to add 3 and 4, one would write 3 4 + rather than 3 + 4.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need Time Stamp Range On Log Files

I have created this script #!/bin/sh FILES=/data/log/access_*.log for f in $FILES do echo "Processing $f file" cat $f | awk '{print $1}' | sort | uniq -c | sort -n | tail done It produces this output Processing /data/log/access_abc.log file 114 1.1.1.1 167 2.2.2.2 ... (38 Replies)
Discussion started by: sharingsunshine
38 Replies

2. Shell Programming and Scripting

Perl:Script to append date and time stamp

Help with Perl script : I have a web.xml file with a line <display-name>some_text_here</display-name> Need to append the current date and time stamp to the string and save the XML file Something like <display-name>some_text_here._01_23_2014_03_56_33</display-name> -->Finally want... (5 Replies)
Discussion started by: gaurav99
5 Replies

3. Shell Programming and Scripting

awk - check time stamp between range or not

I want to check given time stamp is between the given time stamp or not. I am using AIX. YYYYMMDDHHMMSS abc.csv START TIME, END TIME 20130209018000,20130509022000 20120209018000,20130509022000 20120209018000,20130509022000 Script will check given time stamp is between above two range or... (2 Replies)
Discussion started by: vegasluxor
2 Replies

4. Shell Programming and Scripting

Unable to create logfile with local time stamp using perl

Hello All, Morning, I am facing problem with my code while creating a log with name as current time stamp using perl. Here is the code. #!/usr/bin/perl my $time=localtime; my ($day,$month,$date,$tm,$year)=split(/ /,$time); my $stamp=$year."_".$month."_".$date; my... (4 Replies)
Discussion started by: krsnadasa
4 Replies

5. UNIX for Dummies Questions & Answers

How to get the next time stamp in perl?

Hi, I have to find the next time stamp in perl. Here is the code. @time = loaltime(time); print "\n Present time: $time:$time:$time \n"; For example if the time is: "12:55:02" after some process the time becomes 1:00:00. How do i check when it becomes 00:00 i.e from "12:55:02... (0 Replies)
Discussion started by: vanitham
0 Replies

6. Shell Programming and Scripting

Shell Script not showing accurate Time Stamp and Size

Hey guys - I have made this script and for some reason, I dont see time stamp as "Month-Day-YYYY Hours-Mins" - all i see is Month and Day. Also, my file size is approximated. For example, if the size is 19,606KB - the script shows as 20M. Is there a way to see the exact file size? How do i... (2 Replies)
Discussion started by: DallasT
2 Replies

7. Shell Programming and Scripting

Changing File Time Stamp (Bash Script)

I need some help recovering from a "slight" screwup. We just moved 3 TB of data from one RAID Array to another. Low lever archive files. This was done with a regular cp (for some reason) and now we have lost all the timestamps on the files, and we urgently need to get the timestamps back on these... (7 Replies)
Discussion started by: chj
7 Replies

8. Shell Programming and Scripting

append date time stamp via ftp script

I have searched several thread and not found my solution, so I am posting a new qustion. I have a very simple script on an AIX server that FTPs 2 files to a MS FTP server. These 2 files are created on the AIX server every hour, with a static name. I need to FTP the files to the MS server, but... (1 Reply)
Discussion started by: sknisely
1 Replies

9. Shell Programming and Scripting

Perl, time stamp issue. 60th minutes

Hi Guys, Could you tell me how you can get the time stamp for 60th minutes? Currently, we name our file using time stamp upto minutes and then add seconds at the end starting from 01. And when the seconds reaches 60 we simply add 1 to the time stamp and reset the seconds to 00. But the... (3 Replies)
Discussion started by: supaLucas
3 Replies

10. Shell Programming and Scripting

script for listing files of today's time stamp

Hi, I need to write a script,which behaves like this, Given the folder name, it should list the files with today's timestamp. Please direct me on this. Thanks. (2 Replies)
Discussion started by: kid123
2 Replies

Featured Tech Videos