⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fc_getmeasure.pm

📁 Perl开发的数据采集工具 基于UNIX
💻 PM
字号:
package FC_GetMeasure;#################################################################################  @(#) Perl Module: FC_GetMeasure##  Author(s): JIA XL#  #  Copyright(C) 2002-2004 BOCO Inter-Telecom DC Team, All Rights Reserved##  Creation Date:  2002/12/16##  Last update  Date: 2003/02/21##  Description: This module get MeaSure info from df_configfile################################################################################use XML::Simple;use Data::Dumper;######################################################################### Function: New## Input:## Output:## Description:########################################################################sub new {	my ($type,$config_file,$table_name,$measure)=@_;    	my $self={};	$self->{'table'} = $table_name;	$self->{'measure'} = $measure;	$self->{'config_file'} = $config_file;    	bless $self,$type;}######################################################################### Function: GetMeasure## Input:## Output:## Description:########################################################################sub GetMeasure {	my ($self) = @_;	my $table = $self->{'table'};	my $measure = $self->{'measure'};	my $df_cfg_file = $self->{'config_file'};	my $config_ref = &prepare($df_cfg_file);	if (!(exists $config_ref->{'Prime_col_inf'}{'Assistant_Var'})) {                print "Notice: the Assistant_Var is not defined in config_file!\n\n";		return(1);        }	my $Assistant_Var = $config_ref->{'Prime_col_inf'}{'Assistant_Var'};	my $tbl_v2c;	if ($table) {		my @tbl_list = split /,/,$table;		my $measure_part = $Assistant_Var->{'Measure_Var'}{'Measure'};		foreach my $id (keys %$measure_part) {			my $cfg_table_str = $measure_part->{$id}{'tbl_name'};			my @cfg_table = split /,/,$cfg_table_str;			foreach my $tbl_name (@tbl_list) {				for (@cfg_table) {					my $tab = $_;					if ($tbl_name =~ /$tab/i) {						my $v_body = $measure_part->{$id}{'body'};						$tbl_v2c->{$v_body} = $tbl_name;					}				}			}		}	}	elsif ($measure){		my @mea_list = split /,/,$measure;		my $measure_part = $Assistant_Var->{'Measure_Var'}{'Measure'};		foreach my $id (keys %$measure_part) {			foreach my $measure_name (@mea_list) {				if (lc($measure_name) eq lc($measure_part->{$id}{'body'})) {					$tbl_v2c->{$measure_name} = $measure_part->{$id}{'tbl_name'};				}			}		}	}	else {		my $measure_part = $Assistant_Var->{'Measure_Var'}{'Measure'};		foreach my $id (keys %$measure_part) {			my $tbl_name = $measure_part->{$id}{'tbl_name'};			my $tbl_body = $measure_part->{$id}{'body'};			$tbl_v2c->{$tbl_body} = $tbl_name;		}	}	delete $Assistant_Var->{'Measure_Var'}{'Measure'};	$Assistant_Var->{'Measure_Var'}{'Measure'} = $tbl_v2c;	return ($Assistant_Var);}######################################################################### Function: Prepare## Input: null## Output: 1. singal#         2. message## Description:########################################################################sub prepare{	my ($config_file) = @_;    	my $config_ref = eval{XMLin($config_file)};    	if ($@){		print "Read file $config_file failed.\n $@";		return (-1);    	}	$config_ref = &simple_TransformHash($config_ref,'id');    	return ($config_ref);}##########################################################################   Function :simple_TransformHash##   Input:  $ddd_ref:ref to hash_struct#           $key: the key when transforming##   Return: ref to hash_struct which is transformed#########################################################################sub simple_TransformHash{	my ($ddd_ref,$key)=@_;    	foreach $hash_key(keys %$ddd_ref){        	if (exists($ddd_ref->{$hash_key}->{$key})){       	  		my $tmp_hash=$ddd_ref->{$hash_key};         		my $tmp_id=$ddd_ref->{$hash_key}->{$key};         		delete $$tmp_hash{$key};         		my %add_hash=($tmp_id=>$tmp_hash);         		$ddd_ref->{$hash_key}=\%add_hash;         	}	}    	foreach $hash_value(values %$ddd_ref){         	&simple_TransformHash($hash_value,$key);    	}    	return $ddd_ref;}sub close {	my ($pkg) = @_;	undef($pkg);	return($pkg);}1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -