我有一个文本文件,以及一个从该文本文件中检索的函数:

@thefile = read_file( 'somepathfile' );


我希望根据接收信息的类型使用read_file函数的不同实现。

所以如果我写:

%thefile = read_file( 'somepathfile' );


然后将执行其他功能。

我怎么做?

最佳答案

看一下WantContextual::Return CPAN模块。

以下是使用Want的简单示例:

use strict;
use warnings;
use Want;

sub read_file {
    my $filepath = shift;
    my @file_contents = get_file_contents($filepath);

    return @file_contents if want('LIST');

    return {
        filepath => $filepath,
        content  => \@file_contents,
        lines    => scalar @file_contents
    } if want('HASH');

    die "Nothing for that context!";
}

my @list = read_file('foo');
my %hash = %{ read_file('foo') };


注意需要哈希取消引用来强制返回上下文。

/ I3az /

关于perl - 了解接收器类型的Perl函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3308149/

10-14 09:03