$cutover_time = 20140511195000;
$start_time = 20201019154017;
$user_number = 18739367101;
$instance_number = 10;
$chk_time = substr($start_time,0,11);
$dr_type = 8305;
$dbname_prefix = ChkdupLTE;
@val5 = ("18739367101","18739367101","123456","789123","456789");
$n = &hashcode($user_number);
$m = abs(&hashcode($user_number)) % $instance_number;
%db_name_hash = ('8305' => 'DupChkLTE','8303' => 'DupChkGPRS');
%tb_name_hash = ('8305' => 'lte', '8303' => 'gprs');
$dbname_prefix = ( $dr_type && defined($db_name_hash{"$dr_type"})) ? $db_name_hash{"$dr_type"} : 0;
$table_prefix = ( $dr_type && defined($tb_name_hash{"$dr_type"})) ? $tb_name_hash{"$dr_type"} : 0;
$tn = "$dbname_prefix$m.$table_prefix$chk_time";
$cutover_code = '
$m = abs(&hashcode($XDR[18])) % 5;
$tn = "ChkdupLTE$m.$table_prefix$chk_time";
';
sub BiJiao
{
$start_time >= $cutover_time && return($tn,$chk_key);
eval $cutover_code;
print('ERROR', "\nuser_number:$val5[0]\n", "start_time:$val5[1]\n", "charging_id:$val5[2]\n", "ggsn_address:$val5[3]\n", "rec_seq_no:$val5[4]\n", );
return($tn,$chk_key);
}
sub hashcode
{
my ($s) = @_;
my $h = 0;
foreach my $c (unpack("C*",$s))
{
$h = unpack("i",pack("i",($c+unpack("i",pack("i", $h*31)))));
}
return($h);
}
print (BiJiao)