On Thu, 8 Nov 2001, Christopher Solomon wrote:

> On Thu, 8 Nov 2001, Tyler Cruickshank wrote:
> 
> > I would like to create a hash based on data contained in a file.  Can I not use a 
>variable as both the key and the value as shown below?  When I print as shown I do 
>not get a value however if I write the key as:    alta_guard => $names[1]    then I 
>get the correct value printed out.
> > 
> > open(NAMES, "d://perl/avalanche/names.txt") || die "Cant open names.txt\n";
> > 
> > while(<NAMES>){
> >       chomp;
> >     @names = split(/-/);
> >     
> >     %stations = (  $names[0] => $names[1] );
> >     @names = ();
> >     
> >   } # End while.
> >  
> > $table = 'alta_guard';
> > print "Text: $stations{$table}\n";
> > 
> 
> I'm not sure exactly what you want, but I think you want this:
> 
> my %stations;
> 
> while (<NAMES>) {
>     chomp;
>     my @names = split(/-/);
>     $stations{$names[0]} = $names[1];
> }
> 
> Chris


If this is what you want, a more fun way to write it would be:

%stations = map { chomp && split(/-/) } (<NAMES>);

That should do it all in one line.

Chris



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to