• 一个perl的面向对象编程例子


    基类是一个操作系统类

    代码
    package os;
    require Exporter;
    @ISA = qw(Exporter);
    @EXPORT = qw(temp);

    sub getDF{}

    sub temp{
    my $this = shift;
    print $this->getDF();
    print "\n";
    }

    sub new{
    my $class =shift;
    my $this = {};
    bless $this,$class;
    return $this;
    }

    1;

    两个子类分别是sunos和hpos

    代码
    package hpos;
    require Exporter;
    require os;
    @ISA = qw(Exporter os);
    @EXPORT= qw();

    my %cmd =(
    'df' => 'bdf -l',
    'ps' => 'ps -efx'
    );

    sub getDF{
    return $cmd{'df'};
    }

    sub new{
    my $class =shift;
    my $this = os->new();
    bless $this,$class;
    return $this;
    }
    代码
    package sunos;
    require Exporter;
    require os;
    @ISA = qw(Exporter os);
    @EXPORT= qw();

    my %cmd =(
    'df' => 'df -kl',
    'ps' => 'ps -ef'
    );

    sub getDF{
    return $cmd{'df'};
    }

    sub new{
    my $class =shift;
    my $this = os->new();
    bless $this,$class;
    return $this;
    }

    1;

    对象创建工厂

    package factory;

    sub createOS{
    my $self=shift;
    my $os = shift;
    return new sunos if ($os eq 'sun');
    return new hpos if ($os eq 'hp');
    }

    sub createDB{
    }
    1;

    客户端程序

    #!/usr/bin/perl
    push(@INC,`pwd`);
    use sunos;
    use hpos;
    use factory;
    $os = factory->createOS('hp');
    $os ->temp();

    $os = factory->createOS('sun');
    $os->temp();
  • 相关阅读:
    Nginx 相关配置文件修改
    LNMP平台构建实验 +bbs社区搭建
    CSGO项目
    创世战车项目
    IGXE搬砖项目
    11_samba服务器的搭建
    26_django内置static标签
    06_git添加远程仓库并向远程仓库中推送代码
    23_添加apps到项目的搜索路径
    23_django日志器的配置和其使用方法
  • 原文地址:https://www.cnblogs.com/itfriend/p/1788101.html
Copyright © 2020-2023  润新知