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 >
