IO.pm:
package IO;
my IN;
sub new {
my $class = shift;
IN = @_;
my $self={};
bless $self,$class;
return $self;
}
sub do {#操作对象函数
my $self=shift;
defined (
chomp;#去掉无用的字符
s/^\s //;#过滤危险字符
my $cmd =
return $cmd;#返回量
}
1;
CMD.pm:
package CMD;
my IN;
sub new {
my $class = shift;
IN = @_;
my $self={};
bless $self,$class;
return $self;
}
sub do {#操作对象函数
my $self=shift;
my $cmd = @_ ;#传入调用程序的命令
while (){#执行循环,直到退出
if ($cmd eq ''ver'') {
print "Tanshuai Command Shell v.1.0.0.001225b\n";
print "(C)Copyright Tanshuai.Com 1997-2001\n";
print ''EMAIL:tanshuai@BIGFOOT.COM'';
print "\n";
&do;
}
elsif ($cmd eq ""){
&do;
exit;
}
elsif ($cmd eq ''exit''){
print "Exit System";
exit;
}
elsif ($cmd eq ‘dir''){
use System;#使用包System
my $sys = System ::new ;#建立基于System包的对象$sys
$sys->do($cmd) ;#操作对象sys传送命令
&do;
}
else {
print " Command Not Found ";
&do;
}
}
}
}
1;
System.pm:
Package System;
my IN;
sub new {
my $class = shift;
IN = @_;
my $self={};
bless $self,$class;
return $self;
}
sub do {#操作对象函数
my $self=shift;
my $cmd = @_ ;
system($cmd) ;#使用System函数操作系统,启动dir命令
1;
以上各个模块(对象)已经建立完毕,我们现在只需要设计一个简单的操作对象程序。这个时候你发现搞对象原始是如此简单:)
Shell.pl 主程序:
use IO;#调用~模块(对象) IO.pm
use CMD;#调用~模块(对象) CMD.pm
my $IO = IO::new;#创建对象~$IO
my $CMD = CMD::new;#创建对象~$CMD
my $GetInput = $IO->do;#从对象IO得到输入信息;
$CMD->do("$GetInput");#将得到的输入信息发
