Hi Alex,

Thanks to you too. Thank you for the quick and helpful response. I think I
am using the object oriented stuff without really understanding it. But
that's one way of learning, isn't it? Thanks again.

On Nov 30, 2007 8:03 PM, Alex Teslik <[EMAIL PROTECTED]> wrote:

> On Fri, 30 Nov 2007 19:36:30 +0530, jagdish eashwar wrote
> > Hi,
> >
> > I came across some unexpected behaviour in datetime. In the following
> > script, I first define $date1. Then I set $day1 = $date1. Then I add
> > 2 days to $day1. Why does $date1 also get incremented?
> >
> > #!/usr/bin/perl
> > use strict;
> > use warnings;
> >
> > use DateTime;
> >
> > my $date1 = DateTime->new(year => 2007,
> >              month => 12,
> >              day => 23);
> >
> > my $day1 = $date1;
> >
> > $day1->add(days => 2);
> >
> > print "day1 = ",$day1,"\n";   # gives me 2007-12-25 correctly.
> > print "date1 = ",$date1,"\n";  # why does $date1 also change to 2007-
> > 12-25?
> >
> > Jagdish Eashwar
>
> date1 is never a singular value like I think you are expecting. date1
> points
> to a datetime object, which is a collection of multiple values and the
> functions to do work on those values. When you make day1 equal to date1
> you
> are actually pointing day1 at the same object, and therefore the same
> data. So
> then when you change the underlying object by doing $day1>add(days=>2),
> they
> both change.
>
> You can always dump variables to see whats inside using Data::Dumper, like
> this:
>
> #!/usr/bin/perl
> use strict;
> use warnings;
>
> use DateTime;
> use Data::Dumper;
>
> my $date1 = DateTime->new(year => 2007,
>             month => 12,
>             day => 23);
>
> print Dumper($date1);
>
>
> This question is actually more perl related than DBI related. You might
> want
> to try asking and searching at perlmonks.com before asking here next time
> -
> you'll probably get a faster answer.
>
> HTH,
> Alex
>

Reply via email to