Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: Derive a variable name from a variable?

by GrandFather (Saint)
on Dec 17, 2015 at 06:41 UTC ( #1150587=note: print w/replies, xml ) Need Help??


in reply to Derive a variable name from a variable?

Use a hash instead:

#!/usr/bin/perl use warnings; use strict; my %booksByBorrower = ( adam => {"Learning Perl" => {borrowed => '2015-12-17'}}, jake => {"Programming Perl" => {borrowed => '2015-12-08'}}, john => {"Programming Perl" => {borrowed => '2015-12-12'}}, betty => {"High Order Perl" => {borrowed => '2015-12-10'}}, ); for my $name (sort keys %booksByBorrower) { print "$name\n"; for my $book (sort keys %{$booksByBorrower{$name}}) { print " Borrowed $book $booksByBorrower{$name}{$book}{borrowe +d}\n"; } }

Prints:

adam Borrowed Learning Perl 2015-12-17 betty Borrowed High Order Perl 2015-12-10 jake Borrowed Programming Perl 2015-12-08 john Borrowed Programming Perl 2015-12-12

Of course for this sort of task you should really be using a database, but that's a little heavy for such a trivial example.

Premature optimization is the root of all job security

Replies are listed 'Best First'.
Re^2: Derive a variable name from a variable?
by mavericknik (Sexton) on Dec 18, 2015 at 21:22 UTC
    Thank you for the pointers, I used an array reference as the hash value to solve the problem. Yes, I need to look into a better way of doing this. This is an oversimplified example I used to explain my problem, the actual size of the code is pretty big.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1150587]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (4)
As of 2023-02-07 18:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    I prefer not to run the latest version of Perl because:







    Results (40 votes). Check out past polls.

    Notices?