文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Perl子函数返回多个变量

Perl子函数返回多个变量

时间:2006-10-17  来源:babyles

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

一、返回多个变量

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引用如同数组引用


 

相关阅读 更多 +
排行榜 更多 +
瓢虫少女

瓢虫少女

飞行射击 下载
潜艇鱼雷

潜艇鱼雷

飞行射击 下载
网络掠夺者

网络掠夺者

飞行射击 下载