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.