use Data::Dumper;
my %data;
my @projects= qw ( dogs cats birds horses );
my $langs= { it => 'Italian',
es => 'Spanish',
en => 'English' };
my @targets= qw ( images data links other );
foreach my $project (@projects) {
foreach my $lang_abbrev (keys %$langs) {
foreach my $target (@targets) {
$data{$project}{$lang_abbrev}{$target}=
$lang_abbrev.$project.'/'.$target.'.tar.bz2';
}
}
}
print Dumper(\%data);
####
use Data::Dumper;
my $data= new BigData();
print Dumper($data);
package BigData;
sub new
{
my $class= shift;
my $data= {};
my @projects= qw ( dogs cats birds horses );
my $langs= { it => 'Italian',
es => 'Spanish',
en => 'English' };
my @targets= qw ( images data links other );
foreach my $project (@projects) {
foreach my $lang_abbrev (keys %$langs) {
foreach my $target (@targets) {
$data->{$project}{$lang_abbrev}{$target}=
$lang_abbrev.$project.'/'.$target.'.tar.bz2';
}
}
}
bless $data, $class;
return $data;
}
1;
##
##
use Data::Dumper;
my $data= new BigData();
print Dumper($data);
package BigData;
sub new {
my $class= shift;
my $data= {};
my @projects= qw ( dogs cats birds horses );
my @langs;
push @langs, new Lang( { abbrev => 'it',
name => 'Italian' } );
push @langs, new Lang( { abbrev => 'es',
name => 'Spanish' } );
push @langs, new Lang( { abbrev => 'en',
name => 'English' } );
my @targets= qw ( images data links other );
foreach my $project (@projects) {
foreach my $lang (@langs) {
foreach my $target (@targets) {
$data->{$project}{$lang->get_abbrev()}{$target}=
$lang->get_abbrev().$project.'/'.
$target.'.tar.bz2';
}
}
}
bless $data, $class;
return $data;
}
1;
package Lang;
sub new {
my $class= shift;
my $lang= {};
my ($props)= @_;
foreach my $key (keys %$props) {
$lang->{$key}= $props->{$key};
}
bless $lang, $class;
return $lang;
}
sub get_abbrev
{
my $lang= shift;
return $lang->{abbrev};
}
1;