#!/home/ben/software/install/bin/perl use warnings; use strict; =head2 extract_vars extract_vars ('Moby', \%vars); Extract all the exported variables from the specified module, so if Moby exports C<$data_dir> then $vars{data_dir} = $Moby::data_dir This examines C<@EXPORT_OK> in Moby to get the list of variables, and also evaluates Moby. It assumes that it is being run from a F which is situated such that Moby is in F. Thus this is strongly dependent on a specific file layout. =cut sub extract_vars { my ($module, $vars) = @_; eval "use lib \"./lib\";use $module ':all';"; my @exports = eval "\@${module}::EXPORT_OK"; for my $var (@exports) { if ($var =~ /\$(.*)/) { my $nodollar = $1; $vars->{$nodollar} = eval "\$$module::$nodollar"; } } }