您的位置:首页 > 其它

perl 对象 bless 引用

2016-03-21 21:15 417 查看
[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 "\n";

my $var= Dumper($response);
print $var;
print "\n";
$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\n";
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#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: