我从未完成过perl编程,但是我正在考虑使用Perl代码,这让我很困惑:
sub read_pds
{
my $bin_s;
my $input_pds_file = $_[0];
open(my $fh, '<', $input_pds_file) or die "cannot open file $input_pds_file";
{
local $/;
$bin_s = <$fh>;
}
close($fh);
return $bin_s;
}
我正在查看上面的代码,虽然它不会返回任何值,因为那里没有定义返回类型。
但是在底部它返回一个值。现在我怎么知道值的类型是什么,因为当我使用Komodo在其上添加监视时它没有显示任何值。
有什么想法吗?
答案 0 :(得分:5)
Perl没有您考虑的类型,但返回的值将是一个字符串($input_pds_file
的内容。<$fh>
从{{读取单行/记录1}},因为$fh
(输入记录分隔符)设置为$/
,这将是整个文件。
答案 1 :(得分:1)
获取传递给函数调用的第一个参数:
my $input_pds_file = $_[0];
打开文件阅读:
open(my $fh, '<', $input_pds_file) or die "cannot open file $input_pds_file";
将输入记录分隔符设置为无(默认为新行序列:CR或LF或CRLF):
local $/;
将整个文件读取到变量:
$bin_s = <$fh>;
为什么要一次读取整个文件?因为“钻石运营商”:&lt;&gt;从句柄读取数据,直到找到输入记录分隔符(在上面清除)。
最后,返回一个大字符串:
return $bin_s;