use strict; use warnings; use Getopt::Long; my $site; GetOptions("site=s" => \$site) or die "Error in command line arguments\n"; if($site eq ''){ $site = 'site1'; } defined $site or die "usage: $0 site_name\n"; my %site_map = ( site1 => [ qw(a_site1_current) ], site2 => [ qw(a_site2_current) ], site3 => [ qw(a_site3_current) ], ); sub connect { $host = "dam.sd.aog.com"; $database = "a_$site_map\_current" ; $user = "ad" ; $pw = "123"; my $dsn = "DBI:mysql:host=$host"; my $dbh = DBI->connect($dsn, $user, $pw) || die "ERROR: can't connect to database server\n"; return $dbh; } sub ShowContents { my @arr = @{$site_map{$site}}; #print @arr; }