develooper Front page | perl.beginners | Postings from February 2009

Re: objects regarding

Thread Previous | Thread Next
From:
Rob Dixon
Date:
February 12, 2009 02:58
Subject:
Re: objects regarding
Message ID:
499400A5.8050707@gmx.com
suresh kumar wrote:
> 
> This is my code :
> 
> $::dev2->getvalue($x,$y);
> $::dev3->getvalue($x,$y);
> $::dev4->getvalue($x,$y);
> $::dev5->getvalue($x,$y);
> $::dev6->getvalue($x,$y);
> $::dev7->getvalue($x,$y);
> $::dev8->getvalue($x,$y);
> $::dev9->getvalue($x,$y);
> $::dev10->getvalue($x,$y);
> $::dev11->getvalue($x,$y);
> .
> .
> .
> .
> .
> $::dev29->getvalue($x,$y);
> $::dev30->getvalue($x,$y);
> 
> Here $::dev1 to $::dev30 are my objects, using that i am calling the
> function getvalue();
> I want to make it like this,
> @dev = ($::dev2,$::dev3,$::dev4,$::dev5,........$::dev30)
> foreach my $devref (@dev) {
>     $devref->getvalue($x,$y);
> }
> 
> But this is not working. can anyone help me in this, so that using a
> common variable i want to rotate the objects.

The double colon in your variable names is probably superfluous unless your code
is in a package other than 'main'. $::dev1 is equivalent to $main::dev1 and so
just $dev1 if the current package is the default one.

It looks like you need an array of objects. Create them like this:

my @dev;

  for (2 .. 30) {   # Do they really start at 2?
    $dev[$_] = Object->new;
  }

then you can just write

  foreach my $dev (@dev) {
    $dev->getvalue($x,$y);
  }

If you want to explain more about what you mean by "using a common variable i
want to rotate the objects" then I'm sure we can help further.

HTH,

Rob

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About