首页
登录 | 注册

Perl子函数返回多个变量

   我们经常想从子函数中返回多个变量.我们可以在一个数组返回所有的变量,或当成参数引用修改这些变量.

一、返回多个变量

1、返回一个变量:

 

#!/usr/bin/perl

    use strict;
    use warnings;

    # Subroutine prototypes

    sub get_one();

    # Get one variable back

    my $one = get_one();
    print "One: $one\n";

    sub get_one() {
        return "one";
    }

 

输出结果为

One: one

2、返回两个值

 

 

#!/usr/bin/perl

    use strict;
    use warnings;

    # Subroutine prototypes

    sub get_two_arrays();

    # Get two variables back

    my ($one, $two) = get_two();
    print "One: $one\n";
    print "Two: $two\n";

    sub get_two() {
        return ("one", "two");
    }

结果为

   One: one
   Two: two

你可以返回更多的变量,只要遵守以上的语法增加多个变量。

二、返回多个数组

当你处理数组或HASH时,必须小心。

以下代码可能就不是你想要做的。

例:

 

#!/usr/bin/perl

    use strict;
    use warnings;

    # Subroutine prototypes

    sub get_two_arrays();

    # Get two variables back

    my (@one, @two) = get_two_arrays();

    print "First: @one\n";
    print "Second: @two\n";

    sub get_two_arrays() {
        my @array1 = ("a", "b", "c", "d");
        my @array2 = (1, 2, 3, 4);
        return (@array1, @array2);
    }

 

输出的结果:

First: a b c d 1 2 3 4
Second:

若要正确处理,必须返回数组引用


 

#!/usr/bin/perl

    use strict;
    use warnings;

    # Subroutine prototypes

    sub get_two_arrays();

    # Get two variables back

    my ($one_ref, $two_ref) = get_two_arrays();

    my @one = @$one_ref;
    my @two = @$two_ref;
    print "First: @one\n";
    print "Second: @two\n";

    sub get_two_arrays() {
        my @array1 = ("a", "b", "c", "d");
        my @array2 = (1, 2, 3, 4);
        return (\@array1, \@array2);
    }

 

输出结果

    First: a b c d
    Second: 1 2 3 4

hash引用如同数组引用


 


相关文章

  • 1 介绍(Introduction) 1.1 为什么要有编码规范(Why Have Code Conventions) 编码规范对于程序员而言尤为重要,有以下几个原因: - 一个软件的生命周期中,80%的花费在于维护- 几乎没有任何一个软件 ...
  •  更多Java培训.Java视频教程学习资料,请登录尚硅谷网站下载:www.atguigu.com  准备工作:setserveroutput onhellowrold程序begindbms_output.put_line('hello w ...
  • 实现Kubernetes跨集群服务应用的高可用
    在Kubernetes 1.3版本,我们希望降低跨集群跨地区服务部署相关的管理和运营难度.本文介绍如何实现此目标. 我们正式开始.第一步是在谷歌的四个云平台地区通过GKE创建Kubernetes集群. 我们通过下面的命令创建集群: 验证创建 ...
  • https://blog.csdn.net/weixin_42123821/article/details/80532917 1.集成mybatis ①引入依赖 org.mybatis.spring.boot mybatis-spring- ...
  • MonaServer 中事件(Event)的基本使用 在MonaServer中,事件一般是以on开头的方法,例如 onStart.onStop.onConnection onStart(path) 当Server的app被创建的时候并且第一 ...
  • 一.BASH的基本语法 1.1.最简单的例子 -- Hello World!         用 vi 编辑器编辑一个 hello 文件如下: #!/bin/bash # This is a very simple example echo ...

2019 unjeep.com webmaster#unjeep.com
12 q. 0.022 s.
京ICP备10005923号