[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#