Perl语言全面编译(三)

作者:凯旋网络来源:凯旋网络
”,主要讲述OOP在编译Perl程序中的应用以及Perl OOP编写的技巧,所以值得一看。 
前面说过在PerlCC编译可执行程序的时候,不要使用require函数,这是没有错的。但是有很多人写require习惯了,而且不经常接触OOP模式,所以不习惯。 
其实使用use比require 好很多,还有很多人用require引入变量,这是大大错误,这是一种程序上编写的失误,所以建议以后大家不要用这种方式。编译的时候也不要用这种放式?那么用什么方式?如果你是一个有经验的Perl程序员,你应该知道。使用OPEN函数,传送变量值。这是编译Perl程序的关键,一些定量(不变的量),最好放在程序内部,变量以及客户所需要设置的量使用我先前说的那种方式。具体实践方法: 
Tanshuai OpenConf 函数代码: 

 sub Open_Conf { 

         open(FILE, " Perl语言全面编译(三) - 凯旋网络

Perl语言全面编译(三)

作者:凯旋网络来源:凯旋网络
content
  • 广告推荐
    [0]");#打开~调用函数的文件名 

             my @Conf_Info = ;#赋予~文件内容到@Conf_Info数组中 

             close(FILE);#关闭~文件 

         my $Conf_Infos ;定义~局部变量 

             foreach $Conf_Infos (@Conf_Info) {#循环 

                    ($name, $value) = split(/=/, $Conf_Infos);#区分~名称和数值 

                    ($value, $dot) = split(/;/, $value);#区分~结束符 

                   $value=~s"''""gi;#删除~不必要的符号 

                  $CFG{$name} = $value;#复制~参数到散列变量 

             } 

             

    } 
    配置文件原形: 
    Port=''81''; 

    IP="127.0.0.1"; 

    Listen=''5''; 
    调用方法: 
    Open_Conf(''../Conf/httpd.cfg'');#../Conf/httpd.cfg为路径和文件名 

    $port = $CFG{''Port''};#将文件原型的Port量复制到$port上,当然你可以不必这样做,可以直接引HASH 

    $ip = $CFG{''IP''};#和上面的一样 
     
    这样就解决了配置变量的问题,我想这个函数对某些人一定会有很重要的意义。 
    在这里OOP就是use 方式的调用。 
    现在我们要着重讨论OOP问题了,如果你不想把一大堆的程序代码写在一个文件中,那么使用OOP就最好了,原来是可以使用require,但这里不可一。OOP在Perl的好处显而易见,首先可以编译,即使不编译,它也同require有明显差异。 
    OOP是在程序需要时调入,不需要时自动消失(通常说破坏对象)。require则不然,一旦调入一直存在,除非你使用exit 函数,所以在某些方面影响了程序的效率。 
    例如我们要写一个Shell程序,一共需要一下部分:输入/输出(I/O)、命令判断(CMD)、System(系统操作)。 
    我们平时也可以使用require,在编译的时候就好了,同样我们虽然可以按照子程序放在一个程序里面,但是在这里只是例子,但是在大宗商业项目中,这样做是显然费时费力的,会增加维护成本,无法联合开发等多种弊端。 
    我们把他们分为4个文件3个模块一个主程序(编译):IO.pm、CMD.pm、System.pm、Shell.pl。 
    首先要构造对象: 
    Tanshuai 对象构造方法: 

    package <包名或者对象名>; 

    my IN;#定义~包(对象)内部的散列 

    sub new {#构造函数名 

             my $class = shift; 

             IN= @_;#将调用对象的数值传入散列IN中 

             my $self={}; 

             bless $self,$class; 

             return $self; 

    } 
     
     
     
    虽然上面的构造有些不好的地方,但是它是通用对象的构造方法,利于调试,如果你认为没程序上的问题,就可以“封包”,适当修改变量传引方式。 
    这里的所有对象只有是一个单一函数,只包括:构造对象和操作对象的两个部分,这是一个简单的对象引用,但是这种应用在实
  • 广告推荐