通过Net::Ping 理解Perl的面向对象

<pre name="code" class="sql">v-dev-redis01:/root# cat a1.pl 
sub check_dns{
 use  LWP::UserAgent;  
use Net::Ping;
$web = shift;
 $p = Net::Ping->new("icmp");
  if ($p->ping($web,2)){   
return 1;
}  
else {  
return 0;
}} ;

$var=&check_dns("$ARGV[0]"); 
print "$var\n";
v-dev-redis01:/root# perl a1.pl  www.zjtest.com
1

       If a default timeout ($def_timeout) in seconds is provided, it is used when a timeout is not given to the ping() method (below).  The timeout must be greater than 0 and the default, if
           not specified, is 5 seconds.


jrhmpt01:/root# cat a3.pl 
use Net::Ping;
$p = Net::Ping->new("icmp");
use Data::Dumper;  
 my $xx= Dumper($p);      
print "111111111\n";  
print $xx;      
print "\n"; 
jrhmpt01:/root# perl a3.pl 
111111111
$VAR1 = bless( {
                 'proto_num' => 1,
                 'proto' => 'icmp',
                 'data' => '',
                 'device' => undef,
                 'tos' => undef,
                 'data_size' => 0,
                 'pid' => 30484,
                 'econnrefused' => undef,
                 'fh' => bless( \*Symbol::GEN0, 'FileHandle' ),
                 'timeout' => 5,
                 'local_addr' => undef,
                 'seq' => 0,
                 'retrans' => '1.2'
               }, 'Net::Ping' );


生产$p 这个对象,
sub new
{
  my ($this,
      $proto,             # Optional protocol to use for pinging
      $timeout,           # Optional timeout in seconds
      $data_size,         # Optional additional bytes of data
      $device,            # Optional device to use
      $tos,               # Optional ToS to set
      ) = @_;
  my  $class = ref($this) || $this;
  my  $self = {};
  my ($cnt,               # Count through data bytes
      $min_datasize       # Minimum data bytes required
      );

  bless($self, $class);



其中$class is Net::Ping

$self 是$VAR1 = bless( {}, 'Net::Ping' );


sub ping
{
  my ($self,
      $host,              # Name or IP number of host to ping
      $timeout,           # Seconds after which ping times out
      ) = @_;
  my ($ip,                # Packed IP number of $host
      $ret,               # The return value
      $ping_time,         # When ping began
      );

ping 方法的第一个参数是$self 对象


第2个参数是  域名或者IP地址

第三个参数是  超时秒数

生产$p 这个对象,


  Functions
       Net::Ping->new([$proto [, $def_timeout [, $bytes [, $device [, $tos ]]]]]);
           Create a new ping object.  All of the parameters are optional.  $proto specifies the protocol to use when doing a ping.  The current choices are "tcp", "udp", "icmp", "stream", "syn",
           or "external".  The default is "tcp".


创建一个new 的ping 对象


 

你可能感兴趣的:(通过Net::Ping 理解Perl的面向对象)