天天看點

perl面向對象小練習

#!/usr/bin/perl

#編寫一個面向對象的程式,對裝置狀态進行統計管理

package DEVICE;

sub new {

        my $class=shift;

        my $ref={

                ip_addr=>undef,

                hw_type=>undef,

                mac_addr=>undef,

                flag_mask=>undef,

                iface=>undef,

        };

        bless ($ref,$class);

}

sub set {

        my $self=shift;

        my ($ip_addr,$hw_type,$mac_addr,$iface)=@_;

        $self->{ip_addr}=$ip_addr;

        $self->{hw_type}=$hw_type;

        $self->{flag_mask}=$flag_mask;

        $self->{iface}=$iface;

sub display {

        print "---------------------------------------\n";

        print "IP ADDRESS IS ".$self->{ip_addr}."\n";

        print "HARDWARE TYPE IS ".$self->{hw_type}."\n";

        print "FLAG MASK IS ".$self->{flag_mask}."\n";

        print "INTERFACE IS ".$self->{iface}."\n";

package main;

        open DF,"<./device";

        my $i=0;

        while (<DF>){

                my @tmp= split(" ",$_);

                ${dev_{$i}}=DEVICE->new();

                ${dev_{$i}}->set(@tmp);

                $i++;

                print  $i."\n";

        }

my $j;

for ($j=0;$j<$i;$j++){

        ${dev_{$j}}->display;

說明:device檔案位置及内容設定參考下圖:

<a target="_blank" href="http://blog.51cto.com/attachment/201205/015019573.jpg"></a>

本文轉自 tiger506 51CTO部落格,原文連結:http://blog.51cto.com/tiger506/883238,如需轉載請自行聯系原作者