sub GetPceVersion{ my $release = shift; die "no release name given SourceControl::GetPceVersion" unless $release; die "unknown release name given SourceControl::GetPceVersion" unless defined $releases{$release}; my $basepath = $releases{$release}{'path'}; $basepath .= "/" if substr($basepath,-1) ne "/"; my $content = " push \@INC, '$basepath'.\$_ for("; $content .= "'$_'," for (@inc_pathes); chop $content; $content .= ");\n require pce; \n \$pce::VERSION;"; my $temp_script_name = 'GetVersion'. (int rand 1000) .'.pl'; open F, ">$temp_script_name"; print F $content; close F; my @tmpINC = @INC; my %tmpINC = %INC; $releases{$release}{'version'} = do $temp_script_name; %INC = %tmpINC; @INC = @tmpINC; unlink $temp_script_name; return $releases{$release}{'version'}; }