perl package

#!/usr/bin/perl -w
use strict;
use File::Basename;
use XML::Simple;

package CITIC;

my $TPMS_EOD_ETC=$ENV{TPMS_EOD_ETC};

#return script name
sub getscript_name{
         my($path)[email protected]_;
         my $script_name=File::Basename::basename($path);
         #( my $pgm = $0 ) =~ s!.*\\(.*)!$1!g ;
         $script_name =~ s/.pl$|.sql$//;
         return $script_name;
}

#return dbh;
sub connect_db{
         my ($ip,$port,$sid,$user,$pwd)[email protected]_;
         #CITIC::showtime();print "$ip,$port,$sid,$user,$pwd"."\n";
         my $dbh;
         eval{
                  $dbh = DBI->connect("DBI:Oracle:host=$ip;port=$port;sid=$sid",
                  $user,$pwd,{AutoCommit=>1,PrintError=>1,RaiseError=>0});
                  };
         #or die "Can‘t connect db,DBI->errstr";
         unless ($dbh){
                           CITIC::showtime();print DBI->errstr."\n";
                  }else{
                           CITIC::showtime();print "Connect db success!"."\n";
                  }
         return 
$dbh;
}

#return dbc info
sub get_dbc_info{
         my ($subdbc)[email protected]_;
         my $dbc_file="dbc.xml";
         my $xmlfile = "${TPMS_EOD_ETC}${dbc_file}";
         my $xml = XML::Simple->new();
         my $info  = eval{$xml->XMLin($xmlfile,ForceArray => 1)};
         my $CONFIGINFO=$info;         
         my %dbc_info;
         foreach my $get_info(keys(%{$CONFIGINFO->{"config"}->{"$subdbc"}->{"info"}})){
                  
                  $dbc_info{"user"} = $CONFIGINFO->{"config"}->{"$subdbc"}->{"info"}->{"$get_info"}->{"user"};
                  $dbc_info{"pwd"} = $CONFIGINFO->{"config"}->{"$subdbc"}->{"info"}->{"$get_info"}->{"pwd"};
                  $dbc_info{"ip"} = $CONFIGINFO->{"config"}->{"$subdbc"}->{"info"}->{"$get_info"}->{"ip"};
                  $dbc_info{"port"} = $CONFIGINFO->{"config"}->{"$subdbc"}->{"info"}->{"$get_info"}->{"port"};
                  $dbc_info{"sid"} = $CONFIGINFO->{"config"}->{"$subdbc"}->{"info"}->{"$get_info"}->{"sid"};
                  
         }
         return %dbc_info;
}

#去除空格
sub strimstr{
         my $str=shift;
         s/^\s+//;
         s/\s+$//;
         return $str;
}

#return hh:mm:ss yyyymmdd
sub showtime{
         my($sec,$min,$hour,$day,$mon,$year)=localtime(time());
         my 
$current="";
         $sec=sprintf("%02d",$sec);
         $min=sprintf("%02d",$min);
         $hour=sprintf("%02d",$hour);
         $day=sprintf("%02d",$day);
         $mon=sprintf("%02d",$mon+1);
         $year+=1900;
         $current="$hour".":$min".":$sec"." $year"."$mon"."$day";
         print "${current} INFO :    ";

}
#return yyyymmdd 
sub getdate{
         my($sec,$min,$hour,$day,$mon,$year)=localtime(time());
         my $current="";
         $sec=sprintf("%02d",$sec);
         $min=sprintf("%02d",$min);
         $hour=sprintf("%02d",$hour);
         $day=sprintf("%02d",$day);
         $mon=sprintf("%02d",$mon+1);
         $year+=1900;
         $current="$year"."$mon"."$day";
         return "${current}";

}
#return openfile
sub create_logfile($$){
         my ($filename,$path)[email protected]_;
         my $get_date=getdate();
         my $get_time=localtime(time());
         open(FILE,">","${path}${filename}_${get_date}.log") or die "Can`t Create file :$!";
         print FILE "-" x 8 ."[$get_time] Start"."-" x 8 . "\n";
         return *FILE;
}
#close open;
sub close_logfile($){
         my ($log_file)[email protected]_;
         my $get_time=localtime(time());
         print $log_file "-" x 8 ."[$get_time] End"."-" x 8 . "\n";
         close($log_file);
}

#return true;
1;
时间: 2024-11-09 05:13:24

perl package的相关文章

perl学习之:package and module

perl的包(package)和模块(PM) ==================================包package===========================     package mypack;  包文件的其始语句此语句定义一个名为mypack的包,从此以后定义的所有变量和sub的名字都存贮在该包关联的符号表中,直到遇到另一个package语句为止. 包文件——包是面向对象的概念 #!/usr/bin/perlpackage xxx;            pack

浅谈Perl的类、包、模块与面对对象编程

http://blog.chinaunix.net/uid-27464093-id-3308003.html Perl面向对象 Perl面向对象学习例子实例代码教程 - 在我们了解perl的面向对象的概念开始之前,让我们了解引用和匿名数组和哈希表. 在我们了解perl的面向对象的概念开始之前,让我们了解引用和匿名数组和哈希表. 引用 引用是完全像名称所暗示的一样,给另一个对象的引用或指针. 有两种类型的引用:符号和硬引用. 一个符号参考,使您能够引用一个变量的名称,使用另一个变量值. 例如,如果

Perl如何安装新模块/包

今天写Perl程序时需要调用到Tk模块,但是我机器上却没有T T. Perl小白,不知道肿么装新模块.网上搜了一下资料,和大家分享下. 本人机器Windows的系统,没法提供Unix或者Linux的测试,见谅... 如果您使用的是 UNIX 或 Linux,下载和安装 Perl 模块的一种方法是使用 Comprehensive Perl Archive Network (CPAN). 在命令提示符中输入以下命令: perl –MCPAN –e shell install Bundle::CPAN

How to generate exe for your PERL script?

The way I am using is PAR Packer. 1.      Downloadmodule PAR Packer: http://search.cpan.org/~rschupp/PAR-Packer-1.024/lib/PAR/Packer.pm 2.      InstallPAR Packer: 2.1 Unzipthe *.tar 2.2 Go tothe directory and run "perl Makefile,pl", if you are u

Perl的调试方法

来源: http://my.oschina.net/alphajay/blog/52172 http://www.cnblogs.com/baiyanhuang/archive/2009/11/09/1730726.html 1. Perl自带的调试器(功能最全,就是最烦) Perl调试器的用法: 缺省的Perl调试器就是perl解释器本身,另外还有图形界面的调试器.因为我们在开发 程序时一般都使用telnet访问服务器,所以这里主要介绍一下缺省的命令行调试器的用法.用 -d 命令行选项启动Pe

eclipse perl配置

先下载jdk,如果jdk装的是32位,eclipse也要下载32位的,64位也是一样.我用的是jdk7 64位. 下载eclipse,去官网上下载最新的http://www.eclipse.org/downloads/,我下载的版本是eclipse-jee-luna-R-win32-x86_64.zip(4.2版本). 安装好jdk,eclipse解压就能使用了. 下载安装activeperl(http://www.activestate.com/activeperl/downloads)这里下

perl环境配置以及Eclipse安装perl开发插件

简介: 这篇文章将详细介绍 EPIC 组件的安装,EPIC 编辑环境,调试运行环境,着重介绍如何使用 EPIC 来快速.简便.准确地调试 Perl 语言程序,包括对于 Perl 程序的单步执行,断点用法,局部.全局变量实时监控,子函数执行监控,错误以及警告信息实时显示等等内容.利用 EPIC 强大编辑以及调试功能,可以将 Perl 语言适合花短时间完成程序的特点发挥地淋漓尽致,为 tester 的自动化测试脚本提供更加人性化的设计.调试环境. 安装前准备 安装之前需要准备几个重要的组件: Per

Perl面向对象编程

Perl class is a Perl package 首先,创建一个名为Cocoa.pm的包文件(扩展名pm是包的缺省扩展名,意为PerlModule).一个模块就是一个包,一个包就是一个类.在做其它事之前,先加入"1;"这样一行,当你增加其它行时,记住保留"1;"为最后一行.这是Perl包的必需条件,否则该包就不会被Perl处理. 其次,我们往包里添加方法使之成为一个类.第一个需添加的方法是new(),它是创建对象时必须被调用的,new()方法是对象的构造函数

openssl-1.1.1-pre1 windows环境下编译

场景         VS2015编译openssl-1.1.1-pre1 工具         nasm-2.14rc0-installer-x64.exe         ActivePerl-5.24.3.2404-MSWin32-x64-404865.exe         openssl-1.1.1-pre1.tar.gz 环境变量 C:\Program Files\NASM(添加汇编器路径) C:\Program Files (x86)\Microsoft Visual Studio