我有一个文本文件,以及一个从该文本文件中检索的函数:
@thefile = read_file( 'somepathfile' );
我希望根据接收信息的类型使用
read_file
函数的不同实现。所以如果我写:
%thefile = read_file( 'somepathfile' );
然后将执行其他功能。
我怎么做?
最佳答案
看一下Want
或Contextual::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/