• perl 对象 bless 引用


    [root@dr-mysql01 ~]# cat aa.pl 
    use  LWP::UserAgent;
    use Data::Dumper; 
    my $ua = LWP::UserAgent->new;
    $phone=$ARGV[0];
    $cc=$ARGV[1];
    $ua->timeout(10);
    $ua->env_proxy;
    $ua->agent("Mozilla/8.0");
    $host = "xxxxxxxx";
    my $response = $ua->get($host);
    
     my $var= Dumper($ua);
    print $var;
    print "
    ";
    
    
     my $var= Dumper($response);
    print $var;
    print "
    ";
      $ua->default_headers;
    if ($response->is_success) {
     print $response->decoded_content;  # or whatever
    }
    else {
     die $response->status_line;
    }
    [root@dr-mysql01 ~]# set -o vi
    [root@dr-mysql01 ~]# perl aa.pl  180722722237 test
    $VAR1 = bless( {
                     'max_redirect' => 7,
                     'protocols_forbidden' => undef,
                     'show_progress' => undef,
                     'handlers' => {
                                     'response_header' => bless( [
                                                                   {
                                                                     'owner' => 'LWP::UserAgent::parse_head',
                                                                     'callback' => sub { "DUMMY" },
                                                                     'm_media_type' => 'html',
                                                                     'line' => '/usr/share/perl5/LWP/UserAgent.pm:609'
                                                                   }
                                                                 ], 'HTTP::Config' )
                                   },
                     'no_proxy' => [],
                     'protocols_allowed' => undef,
                     'use_eval' => 1,
                     'requests_redirectable' => [
                                                  'GET',
                                                  'HEAD'
                                                ],
                     'timeout' => 10,
                     'def_headers' => bless( {
                                               'user-agent' => 'Mozilla/8.0'
                                             }, 'HTTP::Headers' ),
                     'proxy' => {},
                     'max_size' => undef
                   }, 'LWP::UserAgent' );
    
    
    bless 引用 特定的包
    
    perl 对象实现:
    bless 以一个普通的指向数据结构的引用为参数。它将会把那个数据结构(注意,不是引用本身)
    
    标记为属于某个特定的包,
    
    
    
    vim /usr/share/perl5/Net/Ping.pm 
    
    $p = Net::Ping->new("icmp");
    
     
    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
          ) = @_;
    print "0321.$this is $this
    ";
      my  $class = ref($this) || $this;
      my  $self = {};
      my ($cnt,               # Count through data bytes
          $min_datasize       # Minimum data bytes required
          );
    
      bless($self, $class);
      
    ping 方法的第一个参数是$self 对象名  
      
      
    第2个参数是  域名或者IP地址  
      
    第三个参数是  超时秒数  
    
    $this = Net::Ping包的名字
    
    $self is Net::Ping=HASH(0x6fad48) --对象
    
    
    
    $class is Net::Ping
    
    
    jrhmpt01:/root# perl y2.pl 
    0321.$this is Net::Ping
    $self is Net::Ping=HASH(0xe1cd48)
    $class is Net::Ping
    $var----
    $self 对象:
    
    $VAR1 = bless( {
                     'proto_num' => 1,
                     'proto' => 'icmp',
                     'data' => '',
                     'device' => undef,
                     'tos' => undef,
                     'data_size' => 0,
                     'pid' => 6771,
                     'econnrefused' => undef,
                     'fh' => bless( *Symbol::GEN0, 'FileHandle' ),
                     'timeout' => 5,
                     'local_addr' => undef,
                     'seq' => 0,
                     'retrans' => '1.2'
                   }, 'Net::Ping' );
    
    jrhmpt01:/root# 
    
    
    
    
    

  • 相关阅读:
    VS 对话框控件的Tab顺序问题
    基于OpenGL三维软件开发
    OpenGL 中的三维纹理操作
    VC 在桌面上绘制一些图形
    VC/MFC如何添加启动界面
    Cordova or Xamarin 用.net开发IOS和Android程序
    ASP.NET Web API
    软件项目如何选型
    CIO的职责、条件及价值
    Oracle日期周详解IW
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350930.html
Copyright © 2020-2023  润新知