⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 get_jdk.pl

📁 UNIX下perl实现代码
💻 PL
字号:
#!/usr/bin/perl -w# Based on an ftp client found in the LWP Cookbook and# revised by Nathan V. Patwardhan <nvp@ora.com>.# Copyright 1997 O'Reilly and Associates# This package may be copied under the same terms as Perl itself.## Code appears in the Unix version of the Perl Resource Kituse LWP::UserAgent;use URI::URL;my $ua = new LWP::UserAgent;# check to see if a JDK port exists for the OS.  i'd say# that we should use solaris by default, but a 9meg tarfile# is a hard pill to swallow if it won't work for somebody.  :-)my $os_type = $^O; my $URL = lookup_jdk_port($os_type);die("No JDK port found.  Contact your vendor for details.  Exiting.\n")    if $URL eq '';print "A JDK port for your OS has been found.\nContacting: ".$URL."\n";# Now, parse the URL using URI::URLmy($jdk_file) = (url($URL)->crack)[5]; $jdk_file =~ /(.+)\/(.+)/; $jdk_file = $2;print "Attempting to download: $jdk_file\n";my $expected_length;my $bytes_received = 0;open(OUT, ">".$jdk_file) or die("Can't open $jdk_file: $!");$ua->request(HTTP::Request->new('GET', $URL),	     sub {		 my($chunk, $res) = @_;		 $bytes_received += length($chunk);		 unless (defined $expected_length) {		     $expected_length = $res->content_length || 0;		 }		 if ($expected_length) {		     printf STDERR "%d%% - ",		     100 * $bytes_received / $expected_length;		 }		 print STDERR "$bytes_received bytes received\n";		 print OUT $chunk;	     });close(OUT);sub lookup_jdk_port {    my($port_os) = @_;    my $jdk_hosts = 'jdk_hosts';    my %HOSTS = ();    open(CFG, $jdk_hosts) or die("hosts error: $!");    while(<CFG>) {	chop;	($os, $host) = split(/\s*=>\s*/, $_);	next unless $os eq $port_os;	push(@HOSTS, $host);    }    close(CFG);    return "" unless @HOSTS;    return $HOSTS[rand @HOSTS];		# Pick one at random.}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -