My code in the program is : 

use strict;
use warnings;

use Time::Local;

my $days1 = epoch_days('30-Jan-09');
my $days2 = epoch_days('16-Feb-09');

my $day = $days2 - $days1;

print "Difference: @{[$days2 - $days1]} days\n";

BEGIN {

  my %month_num = do {
    my $n = 0;
    map(($_, $n++), qw/jan feb mar apr may jun jul aug sep oct nov dec/);
  };

  sub epoch_days {

    my @dmy = split /-/, shift;
    $dmy[1] = $month_num{lc $dmy[1]} || 0;

    return timelocal(0, 0, 0, @dmy) / (24 * 60 * 60);
  }
}


-Rajini 



 

>-----Original Message-----
>From: Rob Dixon [mailto:rob.di...@gmx.com] 
>Sent: Tuesday, February 24, 2009 4:40 AM
>To: Perl Beginners
>Cc: S, Rajini (STSD)
>Subject: Re: Query in Perl Programming
>
>S, Rajini (STSD) wrote:
>> From: Owen [mailto:rc...@pcug.org.au]
>>> S, Rajini (STSD) wrote:
>>>>
>>>>  When I included the below code in my script, I  am getting below 
>>>> errors.
>>>>
>>>> Use of uninitialized value in integer ge (>=) at 
>>>> /usr/local/lib/perl5/5.8.0/Time/Local.pm line 73.
>>>> Use of uninitialized value in integer lt (<) at 
>>>> /usr/local/lib/perl5/5.8.0/Time/Local.pm line 73.
>>>> Use of uninitialized value in integer ge (>=) at 
>>>> /usr/local/lib/perl5/5.8.0/Time/Local.pm line 73.
>>>> Use of uninitialized value in integer gt (>) at 
>>>> /usr/local/lib/perl5/5.8.0/Time/Local.pm line 77.
>>>>
>>>> Any idea, why I am getting above errors ?
>>>
>>> Yes
>>>
>>> Because you are not passing the integers required by your module 
>>> Time::Local
>>>
>>> You are doing something wrong with your parsing or date extraction.
>>>
>>> Do you have a sample code snippet reproduces those errors and that 
>>> you can post here ?
>> 
>> My code is as follows : 
>> 
>> use strict;
>> use warnings;
>> use Time::Local;
>> 
>> $days1 = epoch_days('30-Jan-09');
>> $days2 = epoch_days('16-Feb-09');
>> 
>> $day = $days1 - $days2;
>> 
>> print "Difference: @{[$days1 - $days2]} days\n";
>> 
>> BEGIN {
>> 
>>   my %month_num = do {
>>     my $n = 0;
>>     map(($_, $n++), qw/jan feb mar apr may jun jul aug sep 
>oct nov dec/);
>>   };
>> 
>>   sub epoch_days {
>> 
>>     my @dmy = split /-/, shift;
>>     $dmy[1] = $month_num{lc $dmy[1]} || 0;
>>   return timelocal(0, 0, 0, @dmy) / (24 * 60 * 60);
>>   }
>> }
>
>First of all please start bottom-posting your responses to 
>this. (That is to put your response at the end of the post you 
>are quoting.) It is the standard style here and you will see 
>that all regular contributors adhere to it.
>
>You must show us the actual code that gives you the errors you 
>describe. As Chas has pointed out, the above program will not 
>compile, and gives several errors like
>
>  Global symbol "$days1" requires explicit package name
>
>This is because you have 'use strict' at the top of your 
>program and have not declared the three scalar variables. If I 
>change the three lines as follows:
>
>  my $days1 = epoch_days('30-Jan-09');
>  my $days2 = epoch_days('16-Feb-09');
>
>  my $day = $days1 - $days2;
>
>then your program runs fine and produces the output
>
>  Difference: -17 days
>
>We cannot help you if you don't show us the code that has the problem.
>
>Rob
>
--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to