我试图确定给定的标量是否包含文件句柄.它本来可以从一个裸字文件句柄(即\*FH),一个词法文件句柄,一个IO ::句柄,一个IO ::文件等传递给我.到目前为止,在各种风格中唯一似乎是一致的是它们都有reftype的"GLOB".
Perl中是否有任何函数可用于检查引用类型:
my $ref=\@array;
Run Code Online (Sandbox Code Playgroud)
我需要array通过函数获取引用类型.
说我有这个:
my %hash;
$hash{"a"} = "abc";
$hash{"b"} = [1, 2, 3];
Run Code Online (Sandbox Code Playgroud)
以后我怎么能知道存储的是一个标量,如in "abc",还是数组,比如[1, 2, 3]?
我现在已经学习了一点Perl,发现它与我所知道的其他OOP语言有很大的不同.我试图翻译一个C#代码,如下所示:
class Car{}, class CarList{}, class Program{}
Run Code Online (Sandbox Code Playgroud)
和方法(伪代码):
if (var.GetType() == Car)
{
}
else if (var.GetType == CarList)
{
}
Run Code Online (Sandbox Code Playgroud)
如何在没有GetType函数的情况下在perl中编写它或者是否存在?
ref()的文档提到了几个可能的返回值.我明白了其中大部分,但不是REF,IO和LVALUE.我如何编写Perl代码ref以返回这些值?
在阅读了关于typeglobs和文件句柄的文档后,我接近了IO这段代码:
open(INPUT, '<', 'foo.pl');
print ref(*INPUT{IO}), "\n"; # Prints IO::Handle
Run Code Online (Sandbox Code Playgroud)
因为REF和LVALUE我尝试了几个奇怪的结构,但没有成功.