Learning Perl: 4.6. Variable-Length Parameter Lists

本文探讨Perl中函数参数列表的灵活性,介绍如何处理可变数量的参数,包括使用@_数组和$#_索引来动态操作参数,以及在算法实现和数值处理中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Previous Page
Next Page

 

4.6. Variable-Length Parameter Lists

In real-world Perl code, subroutines are often given parameter lists of arbitrary length. That's because of Perl's "no unnecessary limits" philosophy. Of course, this is unlike many traditional programming languages, which require every subroutine to be strictly typed to permit only a certain, predefined number of parameters of predefined types. It's nice that Perl is so flexible, but (as you saw with the &max routine earlier) that may cause problems when a subroutine is called with a different number of arguments than the author expected.

Of course, the subroutine can easily check that it has the right number of arguments by examining the @_ array. For example, we could have written &max to check its argument list like this:[*]

[*] As soon as you learn about warn in the next chapter, you'll see that you can use it to turn improper usage like this into a proper warning. Or perhaps you'll decide this case is severe enough to warrant using die, described in the same chapter.

    sub max {
      if (@_ != 2) {
        print "WARNING! &max should get exactly two arguments!/n";
      }
      # continue as before...
      .
      .
      .
    }

That if test uses the "name" of the array in a scalar context to find out the number of array elements, as you saw in Chapter 3.

But in real-world Perl programming, this sort of check is rarely used; it's better to make the subroutine adapt to the parameters.

4.6.1. A Better &max Routine

So let's rewrite &max to allow for any number of arguments:

    $maximum = &max(3, 5, 10, 4, 6);

    sub max {
      my($max_so_far) = shift @_;  # the first one is the largest yet seen
      foreach (@_) {               # look at the remaining arguments
        if ($_ > $max_so_far) {    # could this one be bigger yet?
          $max_so_far = $_;
        }
      }
      $max_so_far;
    }

This code uses what has often been called the high-water mark algorithm: after a flood, when the waters have surged and receded for the last time, the high-water mark shows where the highest water was seen. In this routine, $max_so_far keeps track of our high-water mark, the largest number yet seen.

The first line sets $max_so_far to 3 (the first parameter in the example code) by shifting that parameter from the parameter array, @_. So, @_ now holds (5, 10, 4, 6) since the 3 has been shifted off. The largest number yet seen is the only one yet seen: 3, the first parameter.

Now, the foreach loop will step through the remaining values in the parameter list from @_. The control variable of the loop is, by default, $_. (But, remember, there's no automatic connection between @_ and $_; it's a coincidence that they have similar names.) The first time through the loop, $_ is 5. The if test sees that it is larger than $max_so_far, so $max_so_far is set to 5, which is the new high-water mark.

The next time through the loop, $_ is 10. That's a new record high, so it's stored in $max_so_far as well.

The next time, $_ is 4. The if test fails since that's no larger than $max_so_far, which is 10, so the body of the if is skipped.

The next time, $_ is 6, and the body of the if is skipped again. And that was the last time through the loop, so the loop is done.

Now, $max_so_far becomes the return value. It's the largest number we've seen, and we've seen them all, so it must be the largest from the list: 10.

4.6.2. Empty Parameter Lists

That improved &max algorithm works fine now, even if there are more than two parameters. But what happens if there are none?

At first, it may seem too esoteric to worry about. After all, why would someone call &max without giving it any parameters? But maybe someone wrote a line like this one:

    $maximum = &max(@numbers);

And the array @numbers might sometimes be an empty list; perhaps it was read in from a file that turned out to be empty. So you need to know this: What does &max do in that case?

The first line of the subroutine sets $max_so_far by using shift on @_, the (now empty) parameter array. That's harmless; the array is left empty, and shift returns undef to $max_so_far.

Now the foreach loop wants to iterate over @_, but since that's empty, the loop body is executed zero times.

In short order, Perl returns the value of $max_so_farundefas the return value of the subroutine. In some sense, that's the right answer because there is no largest value in an empty list.

Of course, whoever is calling this subroutine should be aware that the return value may be undef, or they could ensure that the parameter list is never empty.

Previous Page
Next Page
[root@node3 ~]# docker build -t centos-openjdk:1.0 . Sending build context to Docker daemon 218.7MB Step 1/10 : FROM centos:7 —> eeb6ee3f44bd Step 2/10 : MAINTAINER ljy<17354425003@163.com —> Using cache —> 85ad4a293894 Step 3/10 : ENV MYPATH /usr/local —> Using cache —> c23361382ec7 Step 4/10 : WORKDIR $MYPATH —> Using cache —> 2abf3bdd31a9 Step 5/10 : RUN rm -rf /etc/yum.repos.d/* && curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && sed -i -e ‘/mirrors.cloud.aliyuncs.com/d’ -e ‘/mirrors.aliyuncs.com/d’ /etc/yum.repos.d/CentOS-Base.repo && yum clean all && yum makecache —> Running in 503aba41d245 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2523 100 2523 0 0 3313 0 --::-- --::-- --::-- 3311 Loaded plugins: fastestmirror, ovl Cleaning repos: base extras updates Loaded plugins: fastestmirror, ovl Determining fastest mirrors Metadata Cache Created Removing intermediate container 503aba41d245 —> b47e5c1b9529 Step 6/10 : RUN yum -y install vim net-tools glibc.i686 java-1.8.0-openjdk-devel —> Running in 41acb49268ea Loaded plugins: fastestmirror, ovl Loading mirror speeds from cached hostfile Resolving Dependencies –> Running transaction check —> Package glibc.i686 0:2.17-326.el7_9.3 will be installed –> Processing Dependency: glibc-common = 2.17-326.el7_9.3 for package: glibc-2.17-326.el7_9.3.i686 –> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.17-326.el7_9.3.i686 –> Processing Dependency: libfreebl3.so for package: glibc-2.17-326.el7_9.3.i686 —> Package java-1.8.0-openjdk-devel.x86_64 1:1.8.0.412.b08-1.el7_9 will be installed –> Processing Dependency: java-1.8.0-openjdk(x86-64) = 1:1.8.0.412.b08-1.el7_9 for package: 1:java-1.8.0-openjdk-devel-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: libjvm.so()(64bit) for package: 1:java-1.8.0-openjdk-devel-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: libjava.so()(64bit) for package: 1:java-1.8.0-openjdk-devel-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: libX11.so.6()(64bit) for package: 1:java-1.8.0-openjdk-devel-1.8.0.412.b08-1.el7_9.x86_64 —> Package net-tools.x86_64 0:2.0-0.25.20131004git.el7 will be installed —> Package vim-enhanced.x86_64 2:7.4.629-8.el7_9 will be installed –> Processing Dependency: vim-common = 2:7.4.629-8.el7_9 for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64 –> Processing Dependency: which for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64 –> Processing Dependency: perl(:MODULE_COMPAT_5.16.3) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64 –> Processing Dependency: libperl.so()(64bit) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64 –> Processing Dependency: libgpm.so.2()(64bit) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64 –> Running transaction check —> Package glibc-common.x86_64 0:2.17-317.el7 will be updated –> Processing Dependency: glibc-common = 2.17-317.el7 for package: glibc-2.17-317.el7.x86_64 —> Package glibc-common.x86_64 0:2.17-326.el7_9.3 will be an update —> Package gpm-libs.x86_64 0:1.20.7-6.el7 will be installed —> Package java-1.8.0-openjdk.x86_64 1:1.8.0.412.b08-1.el7_9 will be installed –> Processing Dependency: xorg-x11-fonts-Type1 for package: 1:java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: libpng15.so.15(PNG15_0)(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: libjpeg.so.62(LIBJPEG_6.2)(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: libasound.so.2(ALSA_0.9.0rc4)(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: libasound.so.2(ALSA_0.9)(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: libXcomposite(x86-64) for package: 1:java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: gtk2(x86-64) for package: 1:java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: fontconfig(x86-64) for package: 1:java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: libpng15.so.15()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: libjpeg.so.62()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: libgif.so.4()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: libasound.so.2()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: libXtst.so.6()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: libXrender.so.1()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: libXi.so.6()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: libXext.so.6()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64 —> Package java-1.8.0-openjdk-headless.x86_64 1:1.8.0.412.b08-1.el7_9 will be installed –> Processing Dependency: tzdata-java >= 2023d for package: 1:java-1.8.0-openjdk-headless-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: copy-jdk-configs >= 3.3 for package: 1:java-1.8.0-openjdk-headless-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: pcsc-lite-libs(x86-64) for package: 1:java-1.8.0-openjdk-headless-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: lksctp-tools(x86-64) for package: 1:java-1.8.0-openjdk-headless-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: jpackage-utils for package: 1:java-1.8.0-openjdk-headless-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: cups-libs(x86-64) for package: 1:java-1.8.0-openjdk-headless-1.8.0.412.b08-1.el7_9.x86_64 –> Processing Dependency: libfreetype.so.6()(64bit) for package: 1:java-1.8.0-openjdk-headless-1.8.0.412.b08-1.el7_9.x86_64 —> Package libX11.x86_64 0:1.6.7-5.el7_9 will be installed –> Processing Dependency: libX11-common >= 1.6.7-5.el7_9 for package: libX11-1.6.7-5.el7_9.x86_64 –> Processing Dependency: libxcb.so.1()(64bit) for package: libX11-1.6.7-5.el7_9.x86_64 —> Package nss-softokn-freebl.x86_64 0:3.53.1-6.el7_9 will be updated —> Package nss-softokn-freebl.i686 0:3.90.0-6.el7_9 will be installed –> Processing Dependency: nss-util >= 3.90.0-1 for package: nss-softokn-freebl-3.90.0-6.el7_9.i686 –> Processing Dependency: nspr >= 4.35.0 for package: nss-softokn-freebl-3.90.0-6.el7_9.i686 —> Package nss-softokn-freebl.x86_64 0:3.90.0-6.el7_9 will be an update —> Package perl.x86_64 4:5.16.3-299.el7_9 will be installed –> Processing Dependency: perl(Socket) >= 1.3 for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(Scalar::Util) >= 1.10 for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl-macros for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(threads::shared) for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(threads) for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(constant) for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(Time::Local) for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(Time::HiRes) for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(Storable) for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(Socket) for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(Scalar::Util) for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(Pod::Simple::XHTML) for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(Pod::Simple::Search) for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(Getopt::Long) for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(Filter::Util::Call) for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(File::Temp) for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(File::Spec::Unix) for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(File::Spec::Functions) for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(File::Spec) for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(File::Path) for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(Exporter) for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(Cwd) for package: 4:perl-5.16.3-299.el7_9.x86_64 –> Processing Dependency: perl(Carp) for package: 4:perl-5.16.3-299.el7_9.x86_64 —> Package perl-libs.x86_64 4:5.16.3-299.el7_9 will be installed —> Package vim-common.x86_64 2:7.4.629-8.el7_9 will be installed –> Processing Dependency: vim-filesystem for package: 2:vim-common-7.4.629-8.el7_9.x86_64 —> Package which.x86_64 0:2.20-7.el7 will be installed –> Running transaction check —> Package alsa-lib.x86_64 0:1.1.8-1.el7 will be installed —> Package copy-jdk-configs.noarch 0:3.3-11.el7_9 will be installed —> Package cups-libs.x86_64 1:1.6.3-52.el7_9 will be installed –> Processing Dependency: libavahi-common.so.3()(64bit) for package: 1:cups-libs-1.6.3-52.el7_9.x86_64 –> Processing Dependency: libavahi-client.so.3()(64bit) for package: 1:cups-libs-1.6.3-52.el7_9.x86_64 —> Package fontconfig.x86_64 0:2.13.0-4.3.el7 will be installed –> Processing Dependency: fontpackages-filesystem for package: fontconfig-2.13.0-4.3.el7.x86_64 –> Processing Dependency: dejavu-sans-fonts for package: fontconfig-2.13.0-4.3.el7.x86_64 —> Package freetype.x86_64 0:2.8-14.el7_9.1 will be installed —> Package giflib.x86_64 0:4.1.6-9.el7 will be installed –> Processing Dependency: libSM.so.6()(64bit) for package: giflib-4.1.6-9.el7.x86_64 –> Processing Dependency: libICE.so.6()(64bit) for package: giflib-4.1.6-9.el7.x86_64 —> Package glibc.x86_64 0:2.17-317.el7 will be updated —> Package glibc.x86_64 0:2.17-326.el7_9.3 will be an update —> Package gtk2.x86_64 0:2.24.31-1.el7 will be installed –> Processing Dependency: pango >= 1.20.0-1 for package: gtk2-2.24.31-1.el7.x86_64 –> Processing Dependency: libtiff >= 3.6.1 for package: gtk2-2.24.31-1.el7.x86_64 –> Processing Dependency: libXrandr >= 1.2.99.4-2 for package: gtk2-2.24.31-1.el7.x86_64 –> Processing Dependency: atk >= 1.29.4-2 for package: gtk2-2.24.31-1.el7.x86_64 –> Processing Dependency: hicolor-icon-theme for package: gtk2-2.24.31-1.el7.x86_64 –> Processing Dependency: gtk-update-icon-cache for package: gtk2-2.24.31-1.el7.x86_64 –> Processing Dependency: libpangoft2-1.0.so.0()(64bit) for package: gtk2-2.24.31-1.el7.x86_64 –> Processing Dependency: libpangocairo-1.0.so.0()(64bit) for package: gtk2-2.24.31-1.el7.x86_64 –> Processing Dependency: libpango-1.0.so.0()(64bit) for package: gtk2-2.24.31-1.el7.x86_64 –> Processing Dependency: libgdk_pixbuf-2.0.so.0()(64bit) for package: gtk2-2.24.31-1.el7.x86_64 –> Processing Dependency: libcairo.so.2()(64bit) for package: gtk2-2.24.31-1.el7.x86_64 –> Processing Dependency: libatk-1.0.so.0()(64bit) for package: gtk2-2.24.31-1.el7.x86_64 –> Processing Dependency: libXrandr.so.2()(64bit) for package: gtk2-2.24.31-1.el7.x86_64 –> Processing Dependency: libXinerama.so.1()(64bit) for package: gtk2-2.24.31-1.el7.x86_64 –> Processing Dependency: libXfixes.so.3()(64bit) for package: gtk2-2.24.31-1.el7.x86_64 –> Processing Dependency: libXdamage.so.1()(64bit) for package: gtk2-2.24.31-1.el7.x86_64 –> Processing Dependency: libXcursor.so.1()(64bit) for package: gtk2-2.24.31-1.el7.x86_64 —> Package javapackages-tools.noarch 0:3.4.1-11.el7 will be installed –> Processing Dependency: python-javapackages = 3.4.1-11.el7 for package: javapackages-tools-3.4.1-11.el7.noarch –> Processing Dependency: libxslt for package: javapackages-tools-3.4.1-11.el7.noarch —> Package libX11-common.noarch 0:1.6.7-5.el7_9 will be installed —> Package libXcomposite.x86_64 0:0.4.4-4.1.el7 will be installed —> Package libXext.x86_64 0:1.3.3-3.el7 will be installed —> Package libXi.x86_64 0:1.7.9-1.el7 will be installed —> Package libXrender.x86_64 0:0.9.10-1.el7 will be installed —> Package libXtst.x86_64 0:1.2.3-1.el7 will be installed —> Package libjpeg-turbo.x86_64 0:1.2.90-8.el7 will be installed —> Package libpng.x86_64 2:1.5.13-8.el7 will be installed —> Package libxcb.x86_64 0:1.13-1.el7 will be installed –> Processing Dependency: libXau.so.6()(64bit) for package: libxcb-1.13-1.el7.x86_64 —> Package lksctp-tools.x86_64 0:1.0.17-2.el7 will be installed —> Package nspr.x86_64 0:4.25.0-2.el7_9 will be updated —> Package nspr.x86_64 0:4.35.0-1.el7_9 will be an update —> Package nss-util.x86_64 0:3.53.1-1.el7_9 will be updated —> Package nss-util.x86_64 0:3.90.0-1.el7_9 will be an update —> Package pcsc-lite-libs.x86_64 0:1.8.8-8.el7 will be installed —> Package perl-Carp.noarch 0:1.26-244.el7 will be installed —> Package perl-Exporter.noarch 0:5.68-3.el7 will be installed —> Package perl-File-Path.noarch 0:2.09-2.el7 will be installed —> Package perl-File-Temp.noarch 0:0.23.01-3.el7 will be installed —> Package perl-Filter.x86_64 0:1.49-3.el7 will be installed —> Package perl-Getopt-Long.noarch 0:2.40-3.el7 will be installed –> Processing Dependency: perl(Pod::Usage) >= 1.14 for package: perl-Getopt-Long-2.40-3.el7.noarch –> Processing Dependency: perl(Text::ParseWords) for package: perl-Getopt-Long-2.40-3.el7.noarch —> Package perl-PathTools.x86_64 0:3.40-5.el7 will be installed —> Package perl-Pod-Simple.noarch 1:3.28-4.el7 will be installed –> Processing Dependency: perl(Pod::Escapes) >= 1.04 for package: 1:perl-Pod-Simple-3.28-4.el7.noarch –> Processing Dependency: perl(Encode) for package: 1:perl-Pod-Simple-3.28-4.el7.noarch —> Package perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 will be installed —> Package perl-Socket.x86_64 0:2.010-5.el7 will be installed —> Package perl-Storable.x86_64 0:2.45-3.el7 will be installed —> Package perl-Time-HiRes.x86_64 4:1.9725-3.el7 will be installed —> Package perl-Time-Local.noarch 0:1.2300-2.el7 will be installed —> Package perl-constant.noarch 0:1.27-2.el7 will be installed —> Package perl-macros.x86_64 4:5.16.3-299.el7_9 will be installed —> Package perl-threads.x86_64 0:1.87-4.el7 will be installed —> Package perl-threads-shared.x86_64 0:1.43-6.el7 will be installed —> Package tzdata-java.noarch 0:2024a-1.el7 will be installed —> Package vim-filesystem.x86_64 2:7.4.629-8.el7_9 will be installed —> Package xorg-x11-fonts-Type1.noarch 0:7.5-9.el7 will be installed –> Processing Dependency: ttmkfdir for package: xorg-x11-fonts-Type1-7.5-9.el7.noarch –> Processing Dependency: ttmkfdir for package: xorg-x11-fonts-Type1-7.5-9.el7.noarch –> Processing Dependency: mkfontdir for package: xorg-x11-fonts-Type1-7.5-9.el7.noarch –> Processing Dependency: mkfontdir for package: xorg-x11-fonts-Type1-7.5-9.el7.noarch –> Running transaction check —> Package atk.x86_64 0:2.28.1-2.el7 will be installed —> Package avahi-libs.x86_64 0:0.6.31-20.el7 will be installed —> Package cairo.x86_64 0:1.15.12-4.el7 will be installed –> Processing Dependency: libpixman-1.so.0()(64bit) for package: cairo-1.15.12-4.el7.x86_64 –> Processing Dependency: libGL.so.1()(64bit) for package: cairo-1.15.12-4.el7.x86_64 –> Processing Dependency: libEGL.so.1()(64bit) for package: cairo-1.15.12-4.el7.x86_64 —> Package dejavu-sans-fonts.noarch 0:2.33-6.el7 will be installed –> Processing Dependency: dejavu-fonts-common = 2.33-6.el7 for package: dejavu-sans-fonts-2.33-6.el7.noarch —> Package fontpackages-filesystem.noarch 0:1.44-8.el7 will be installed —> Package gdk-pixbuf2.x86_64 0:2.36.12-3.el7 will be installed –> Processing Dependency: libjasper.so.1()(64bit) for package: gdk-pixbuf2-2.36.12-3.el7.x86_64 —> Package gtk-update-icon-cache.x86_64 0:3.22.30-8.el7_9 will be installed —> Package hicolor-icon-theme.noarch 0:0.12-7.el7 will be installed —> Package libICE.x86_64 0:1.0.9-9.el7 will be installed —> Package libSM.x86_64 0:1.2.2-2.el7 will be installed —> Package libXau.x86_64 0:1.0.8-2.1.el7 will be installed —> Package libXcursor.x86_64 0:1.1.15-1.el7 will be installed —> Package libXdamage.x86_64 0:1.1.4-4.1.el7 will be installed —> Package libXfixes.x86_64 0:5.0.3-1.el7 will be installed —> Package libXinerama.x86_64 0:1.1.3-2.1.el7 will be installed —> Package libXrandr.x86_64 0:1.5.1-2.el7 will be installed —> Package libtiff.x86_64 0:4.0.3-35.el7 will be installed –> Processing Dependency: libjbig.so.2.0()(64bit) for package: libtiff-4.0.3-35.el7.x86_64 —> Package libxslt.x86_64 0:1.1.28-6.el7 will be installed —> Package pango.x86_64 0:1.42.4-4.el7_7 will be installed –> Processing Dependency: libthai(x86-64) >= 0.1.9 for package: pango-1.42.4-4.el7_7.x86_64 –> Processing Dependency: libXft(x86-64) >= 2.0.0 for package: pango-1.42.4-4.el7_7.x86_64 –> Processing Dependency: harfbuzz(x86-64) >= 1.4.2 for package: pango-1.42.4-4.el7_7.x86_64 –> Processing Dependency: fribidi(x86-64) >= 1.0 for package: pango-1.42.4-4.el7_7.x86_64 –> Processing Dependency: libthai.so.0(LIBTHAI_0.1)(64bit) for package: pango-1.42.4-4.el7_7.x86_64 –> Processing Dependency: libthai.so.0()(64bit) for package: pango-1.42.4-4.el7_7.x86_64 –> Processing Dependency: libharfbuzz.so.0()(64bit) for package: pango-1.42.4-4.el7_7.x86_64 –> Processing Dependency: libfribidi.so.0()(64bit) for package: pango-1.42.4-4.el7_7.x86_64 –> Processing Dependency: libXft.so.2()(64bit) for package: pango-1.42.4-4.el7_7.x86_64 —> Package perl-Encode.x86_64 0:2.51-7.el7 will be installed —> Package perl-Pod-Escapes.noarch 1:1.04-299.el7_9 will be installed —> Package perl-Pod-Usage.noarch 0:1.63-3.el7 will be installed –> Processing Dependency: perl(Pod::Text) >= 3.15 for package: perl-Pod-Usage-1.63-3.el7.noarch –> Processing Dependency: perl-Pod-Perldoc for package: perl-Pod-Usage-1.63-3.el7.noarch —> Package perl-Text-ParseWords.noarch 0:3.29-4.el7 will be installed —> Package python-javapackages.noarch 0:3.4.1-11.el7 will be installed –> Processing Dependency: python-lxml for package: python-javapackages-3.4.1-11.el7.noarch —> Package ttmkfdir.x86_64 0:3.0.9-42.el7 will be installed —> Package xorg-x11-font-utils.x86_64 1:7.5-21.el7 will be installed –> Processing Dependency: libfontenc.so.1()(64bit) for package: 1:xorg-x11-font-utils-7.5-21.el7.x86_64 –> Running transaction check —> Package dejavu-fonts-common.noarch 0:2.33-6.el7 will be installed —> Package fribidi.x86_64 0:1.0.2-1.el7_7.1 will be installed —> Package harfbuzz.x86_64 0:1.7.5-2.el7 will be installed –> Processing Dependency: libgraphite2.so.3()(64bit) for package: harfbuzz-1.7.5-2.el7.x86_64 —> Package jasper-libs.x86_64 0:1.900.1-33.el7 will be installed —> Package jbigkit-libs.x86_64 0:2.0-11.el7 will be installed —> Package libXft.x86_64 0:2.3.2-2.el7 will be installed —> Package libfontenc.x86_64 0:1.1.3-3.el7 will be installed —> Package libglvnd-egl.x86_64 1:1.0.1-0.8.git5baa1e5.el7 will be installed –> Processing Dependency: libglvnd(x86-64) = 1:1.0.1-0.8.git5baa1e5.el7 for package: 1:libglvnd-egl-1.0.1-0.8.git5baa1e5.el7.x86_64 –> Processing Dependency: mesa-libEGL(x86-64) >= 13.0.4-1 for package: 1:libglvnd-egl-1.0.1-0.8.git5baa1e5.el7.x86_64 –> Processing Dependency: libGLdispatch.so.0()(64bit) for package: 1:libglvnd-egl-1.0.1-0.8.git5baa1e5.el7.x86_64 —> Package libglvnd-glx.x86_64 1:1.0.1-0.8.git5baa1e5.el7 will be installed –> Processing Dependency: mesa-libGL(x86-64) >= 13.0.4-1 for package: 1:libglvnd-glx-1.0.1-0.8.git5baa1e5.el7.x86_64 —> Package libthai.x86_64 0:0.1.14-9.el7 will be installed —> Package perl-Pod-Perldoc.noarch 0:3.20-4.el7 will be installed –> Processing Dependency: perl(parent) for package: perl-Pod-Perldoc-3.20-4.el7.noarch –> Processing Dependency: perl(HTTP::Tiny) for package: perl-Pod-Perldoc-3.20-4.el7.noarch –> Processing Dependency: groff-base for package: perl-Pod-Perldoc-3.20-4.el7.noarch —> Package perl-podlators.noarch 0:2.5.1-3.el7 will be installed —> Package pixman.x86_64 0:0.34.0-1.el7 will be installed —> Package python-lxml.x86_64 0:3.2.1-4.el7 will be installed –> Running transaction check —> Package graphite2.x86_64 0:1.3.10-1.el7_3 will be installed —> Package groff-base.x86_64 0:1.22.2-8.el7 will be installed —> Package libglvnd.x86_64 1:1.0.1-0.8.git5baa1e5.el7 will be installed —> Package mesa-libEGL.x86_64 0:18.3.4-12.el7_9 will be installed –> Processing Dependency: mesa-libgbm = 18.3.4-12.el7_9 for package: mesa-libEGL-18.3.4-12.el7_9.x86_64 –> Processing Dependency: libxshmfence.so.1()(64bit) for package: mesa-libEGL-18.3.4-12.el7_9.x86_64 –> Processing Dependency: libwayland-server.so.0()(64bit) for package: mesa-libEGL-18.3.4-12.el7_9.x86_64 –> Processing Dependency: libwayland-client.so.0()(64bit) for package: mesa-libEGL-18.3.4-12.el7_9.x86_64 –> Processing Dependency: libglapi.so.0()(64bit) for package: mesa-libEGL-18.3.4-12.el7_9.x86_64 –> Processing Dependency: libgbm.so.1()(64bit) for package: mesa-libEGL-18.3.4-12.el7_9.x86_64 –> Processing Dependency: libdrm.so.2()(64bit) for package: mesa-libEGL-18.3.4-12.el7_9.x86_64 —> Package mesa-libGL.x86_64 0:18.3.4-12.el7_9 will be installed –> Processing Dependency: libXxf86vm.so.1()(64bit) for package: mesa-libGL-18.3.4-12.el7_9.x86_64 —> Package perl-HTTP-Tiny.noarch 0:0.033-3.el7 will be installed —> Package perl-parent.noarch 1:0.225-244.el7 will be installed –> Running transaction check —> Package libXxf86vm.x86_64 0:1.1.4-1.el7 will be installed —> Package libdrm.x86_64 0:2.4.97-2.el7 will be installed –> Processing Dependency: libpciaccess.so.0()(64bit) for package: libdrm-2.4.97-2.el7.x86_64 —> Package libwayland-client.x86_64 0:1.15.0-1.el7 will be installed —> Package libwayland-server.x86_64 0:1.15.0-1.el7 will be installed —> Package libxshmfence.x86_64 0:1.2-1.el7 will be installed —> Package mesa-libgbm.x86_64 0:18.3.4-12.el7_9 will be installed —> Package mesa-libglapi.x86_64 0:18.3.4-12.el7_9 will be installed –> Running transaction check —> Package libpciaccess.x86_64 0:0.14-1.el7 will be installed –> Processing Dependency: hwdata for package: libpciaccess-0.14-1.el7.x86_64 –> Running transaction check —> Package hwdata.x86_64 0:0.252-9.7.el7 will be installed –> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size Installing: glibc i686 2.17-326.el7_9.3 updates 4.3 M java-1.8.0-openjdk-devel x86_64 1:1.8.0.412.b08-1.el7_9 updates 9.9 M net-tools x86_64 2.0-0.25.20131004git.el7 base 306 k vim-enhanced x86_64 2:7.4.629-8.el7_9 updates 1.1 M Installing for dependencies: alsa-lib x86_64 1.1.8-1.el7 base 425 k atk x86_64 2.28.1-2.el7 base 263 k avahi-libs x86_64 0.6.31-20.el7 base 62 k cairo x86_64 1.15.12-4.el7 base 741 k copy-jdk-configs noarch 3.3-11.el7_9 updates 22 k cups-libs x86_64 1:1.6.3-52.el7_9 updates 359 k dejavu-fonts-common noarch 2.33-6.el7 base 64 k dejavu-sans-fonts noarch 2.33-6.el7 base 1.4 M fontconfig x86_64 2.13.0-4.3.el7 base 254 k fontpackages-filesystem noarch 1.44-8.el7 base 9.9 k freetype x86_64 2.8-14.el7_9.1 updates 380 k fribidi x86_64 1.0.2-1.el7_7.1 base 79 k gdk-pixbuf2 x86_64 2.36.12-3.el7 base 570 k giflib x86_64 4.1.6-9.el7 base 40 k gpm-libs x86_64 1.20.7-6.el7 base 32 k graphite2 x86_64 1.3.10-1.el7_3 base 115 k groff-base x86_64 1.22.2-8.el7 base 942 k gtk-update-icon-cache x86_64 3.22.30-8.el7_9 updates 27 k gtk2 x86_64 2.24.31-1.el7 base 3.4 M harfbuzz x86_64 1.7.5-2.el7 base 267 k hicolor-icon-theme noarch 0.12-7.el7 base 42 k hwdata x86_64 0.252-9.7.el7 base 2.5 M jasper-libs x86_64 1.900.1-33.el7 base 150 k java-1.8.0-openjdk x86_64 1:1.8.0.412.b08-1.el7_9 updates 325 k java-1.8.0-openjdk-headless x86_64 1:1.8.0.412.b08-1.el7_9 updates 33 M javapackages-tools noarch 3.4.1-11.el7 base 73 k jbigkit-libs x86_64 2.0-11.el7 base 46 k libICE x86_64 1.0.9-9.el7 base 66 k libSM x86_64 1.2.2-2.el7 base 39 k libX11 x86_64 1.6.7-5.el7_9 updates 607 k libX11-common noarch 1.6.7-5.el7_9 updates 165 k libXau x86_64 1.0.8-2.1.el7 base 29 k libXcomposite x86_64 0.4.4-4.1.el7 base 22 k libXcursor x86_64 1.1.15-1.el7 base 30 k libXdamage x86_64 1.1.4-4.1.el7 base 20 k libXext x86_64 1.3.3-3.el7 base 39 k libXfixes x86_64 5.0.3-1.el7 base 18 k libXft x86_64 2.3.2-2.el7 base 58 k libXi x86_64 1.7.9-1.el7 base 40 k libXinerama x86_64 1.1.3-2.1.el7 base 14 k libXrandr x86_64 1.5.1-2.el7 base 27 k libXrender x86_64 0.9.10-1.el7 base 26 k libXtst x86_64 1.2.3-1.el7 base 20 k libXxf86vm x86_64 1.1.4-1.el7 base 18 k libdrm x86_64 2.4.97-2.el7 base 151 k libfontenc x86_64 1.1.3-3.el7 base 31 k libglvnd x86_64 1:1.0.1-0.8.git5baa1e5.el7 base 89 k libglvnd-egl x86_64 1:1.0.1-0.8.git5baa1e5.el7 base 44 k libglvnd-glx x86_64 1:1.0.1-0.8.git5baa1e5.el7 base 125 k libjpeg-turbo x86_64 1.2.90-8.el7 base 135 k libpciaccess x86_64 0.14-1.el7 base 26 k libpng x86_64 2:1.5.13-8.el7 base 213 k libthai x86_64 0.1.14-9.el7 base 187 k libtiff x86_64 4.0.3-35.el7 base 172 k libwayland-client x86_64 1.15.0-1.el7 base 33 k libwayland-server x86_64 1.15.0-1.el7 base 39 k libxcb x86_64 1.13-1.el7 base 214 k libxshmfence x86_64 1.2-1.el7 base 7.2 k libxslt x86_64 1.1.28-6.el7 base 242 k lksctp-tools x86_64 1.0.17-2.el7 base 88 k mesa-libEGL x86_64 18.3.4-12.el7_9 updates 110 k mesa-libGL x86_64 18.3.4-12.el7_9 updates 166 k mesa-libgbm x86_64 18.3.4-12.el7_9 updates 39 k mesa-libglapi x86_64 18.3.4-12.el7_9 updates 46 k nss-softokn-freebl i686 3.90.0-6.el7_9 updates 327 k pango x86_64 1.42.4-4.el7_7 base 280 k pcsc-lite-libs x86_64 1.8.8-8.el7 base 34 k perl x86_64 4:5.16.3-299.el7_9 updates 8.0 M perl-Carp noarch 1.26-244.el7 base 19 k perl-Encode x86_64 2.51-7.el7 base 1.5 M perl-Exporter noarch 5.68-3.el7 base 28 k perl-File-Path noarch 2.09-2.el7 base 26 k perl-File-Temp noarch 0.23.01-3.el7 base 56 k perl-Filter x86_64 1.49-3.el7 base 76 k perl-Getopt-Long noarch 2.40-3.el7 base 56 k perl-HTTP-Tiny noarch 0.033-3.el7 base 38 k perl-PathTools x86_64 3.40-5.el7 base 82 k perl-Pod-Escapes noarch 1:1.04-299.el7_9 updates 52 k perl-Pod-Perldoc noarch 3.20-4.el7 base 87 k perl-Pod-Simple noarch 1:3.28-4.el7 base 216 k perl-Pod-Usage noarch 1.63-3.el7 base 27 k perl-Scalar-List-Utils x86_64 1.27-248.el7 base 36 k perl-Socket x86_64 2.010-5.el7 base 49 k perl-Storable x86_64 2.45-3.el7 base 77 k perl-Text-ParseWords noarch 3.29-4.el7 base 14 k perl-Time-HiRes x86_64 4:1.9725-3.el7 base 45 k perl-Time-Local noarch 1.2300-2.el7 base 24 k perl-constant noarch 1.27-2.el7 base 19 k perl-libs x86_64 4:5.16.3-299.el7_9 updates 690 k perl-macros x86_64 4:5.16.3-299.el7_9 updates 44 k perl-parent noarch 1:0.225-244.el7 base 12 k perl-podlators noarch 2.5.1-3.el7 base 112 k perl-threads x86_64 1.87-4.el7 base 49 k perl-threads-shared x86_64 1.43-6.el7 base 39 k pixman x86_64 0.34.0-1.el7 base 248 k python-javapackages noarch 3.4.1-11.el7 base 31 k python-lxml x86_64 3.2.1-4.el7 base 758 k ttmkfdir x86_64 3.0.9-42.el7 base 48 k tzdata-java noarch 2024a-1.el7 updates 187 k vim-common x86_64 2:7.4.629-8.el7_9 updates 5.9 M vim-filesystem x86_64 2:7.4.629-8.el7_9 updates 11 k which x86_64 2.20-7.el7 base 41 k xorg-x11-font-utils x86_64 1:7.5-21.el7 base 104 k xorg-x11-fonts-Type1 noarch 7.5-9.el7 base 521 k Updating for dependencies: glibc x86_64 2.17-326.el7_9.3 updates 3.6 M glibc-common x86_64 2.17-326.el7_9.3 updates 12 M nspr x86_64 4.35.0-1.el7_9 updates 128 k nss-softokn-freebl x86_64 3.90.0-6.el7_9 updates 321 k nss-util x86_64 3.90.0-1.el7_9 updates 80 k Transaction Summary Install 4 Packages (+104 Dependent packages) Upgrade ( 5 Dependent packages) Total download size: 100 M Downloading packages: Delta RPMs disabled because /usr/bin/applydeltarpm not installed. warning: /var/cache/yum/x86_64/7/base/packages/alsa-lib-1.1.8-1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY Public key for alsa-lib-1.1.8-1.el7.x86_64.rpm is not installed Public key for cups-libs-1.6.3-52.el7_9.x86_64.rpm is not installed http://mirrors.aliyun.com/centos/7/updates/x86_64/Packages/copy-jdk-configs-3.3-11.el7_9.noarch.rpm: [Errno 14] curl#6 - “Could not resolve host: mirrors.aliyun.com; Unknown error” Trying other mirror. http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/gtk2-2.24.31-1.el7.x86_64.rpm: [Errno 14] curl#6 - “Could not resolve host: mirrors.aliyun.com; Unknown error” Trying other mirror. http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/javapackages-tools-3.4.1-11.el7.noarch.rpm: [Errno 14] curl#6 - “Could not resolve host: mirrors.aliyun.com; Unknown error” Trying other mirror. Error downloading packages: gtk2-2.24.31-1.el7.x86_64: [Errno 256] No more mirrors to try. javapackages-tools-3.4.1-11.el7.noarch: [Errno 256] No more mirrors to try. copy-jdk-configs-3.3-11.el7_9.noarch: [Errno 256] No more mirrors to try. The command ‘/bin/sh -c yum -y install vim net-tools glibc.i686 java-1.8.0-openjdk-devel’ returned a non-zero code: 1还是没解决
最新发布
08-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值