Please bottom post...

> True. Since the value(s) for @Counter$router is going
> to be array, manipulating that hash was making things
> complex for me.
> 
> If I use a hash (%Counter), what do I have to do such
> that the resulting value for $Counter{$router} is an
> array.
> 

You still haven't told us what you are really after.  'Counter' is a
rather undescript variable name, and $router is just an IP address, so
are you trying to count the number of times the IP occurs in a log,
etc.?  You haven't stated why you need an array associated with $router
at all... the reason this is unclear is because of the name "Counter"
which implies just a count, which implies a number, which implies a
scalar, which if you really do need an array, this may suggest that your
variable name is not terribly stylish...

You have stumbled on references, which is a good thing in the end, but
you need to first establish if you truly need an array, if you have in
fact established this, then you should become familar with the core of
references before leading yourself down the path of lots of questions. A
look at,

perldoc perlreftut
perldoc perllol
perldoc perldsc
perldoc perlref

Will probably help you the most...

To specifically answer your question you can initialize the "slot" in
the hash with an anonymous array reference like so:

$Counter->{$router} = [];

Then as your other message suggests you can act on that array in ways
such as,

push @{$Counter->{$router}}, 'My latest value';
foreach my $value (@{$Counter->{$router}}) {  # do something }

Or individually as,

$Counter->{$router}->[0]... but seriously read the docs....

http://danconia.org



> --- Wiggins d Anconia <[EMAIL PROTECTED]> wrote:
> > 
> > 
> > > Hi: I have a existing variable called $router
> > which is
> > > "192.168.1.1". I want to create a array which
> > looks
> > > like @Counter192.168.1.1. 
> > > 
> > > @Counter.$router does not seem to work. 
> > > 
> > > Thanks in advance
> > > Ravi
> > 
> > The first question is why?  I suspect first that the
> > dots in the name of
> > the variable will not be allowed for obvious reason,
> > second you are
> > trying to use symbolic references which are frowned
> > upon, and prevented
> > assuming you are doing 'use strict' (you are aren't
> > you?).
> > 
> > So what are you *really* trying to do?  I will
> > suggest a hash as usually
> > this type of problem is solved by their use....
> > 


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to