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# 





原文地址:https://www.cnblogs.com/hzcya1995/p/13350930.html