这是旧perl脚本的一部分,我挣扎。
变量$h
突然在if
内部定义,我不知道它是什么意思
#!/usr/bin/perl
use strict;
use warnings;
use Scalar::Util qw(looks_like_number);
if (open(LIST,"/proc/partitions"))
{
while (<LIST>)
{
my @a = split(/s+/);
print "@an";
if (looks_like_number($a[3]) && $a[3] > 100000000)
{
if (open(IN, "/dev/$a[4]"))
{
my $h;
if (read(IN, $h, 4) == 4 && $h eq 'EFI')
{
print "/dev/$a[4]n";
}
close(IN);
}
}
}
}
它实际上是代码的一部分。
无论如何,它运行良好,但据我所知,没有保存到变量$h
,只是定义。
是否与looks_like_number
有关?
你能告诉我我错过了什么吗?
由read
函数写入:
读文件句柄,标量、长度
尝试从指定的FILEHANDLE中读取数据的LENGTH字符到变量SCALAR中。返回实际读取的字符数,文件末尾的
0
,如果有错误则返回undef(在后一种情况下还设置$!
)。标量将被增长或收缩,以便实际读取的最后一个字符是该标量在读取后的最后一个字符。