Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Resetiing business day

by bimleshsharma (Beadle)
on Sep 08, 2011 at 05:43 UTC ( #924725=perlquestion: print w/replies, xml ) Need Help??
bimleshsharma has asked for the wisdom of the Perl Monks concerning the following question:

Business day value resetting

Here in loop everytime $d value is being stored in new variable but $tem_bd value is being increased instead of resetting. How do we reset business day. Code is as below

my $d = new Date::Business();
while ($n <=10)
{
my $temp_bd=$d;
$temp_bd->addb(1);
$start{'date'}= $temp_bd->image();
print "\n Date- $start{'date'}";
$n++;
}

Replies are listed 'Best First'.
Re: Resetiing business day
by Corion (Pope) on Sep 08, 2011 at 06:56 UTC
    my $d = new Date::Business(); ... my $temp_bd=$d;

    Here, $temp_bd and $d refer to the same object. Simple assignment in Perl does not copy an object. So if you modify $temp_bd, you also modify $d.

      Yah, You are right. I found a way to do that. Here is modified code.

      use Date::Business;
      my %start;
      my $n=1;
      my $temp_bd;
      my $d = new Date::Business();
      while ($n <=10)
      {
      $temp_bd= new Date::Business($d);
      $temp_bd->addb(2);
      $start{'date'}= $temp_bd->image();
      $start{'date1'}= $d->image();
      print "\n Date- $start{'date'}";
      print "\n Date1- $start{'date1'}";
      $n++;
      }
      Just new object had to start with original using method of package instead of assignment operator.

Re: Resetiing business day
by Anonymous Monk on Sep 08, 2011 at 06:50 UTC

    Here in loop everytime $d value is being stored in new variable but $tem_bd value is being increased instead of resetting

    addb doesn't spell reset

    for my $n ( 0 .. 10 ){ my $date = Date::Business->new; ... }