use*_*373 -1 arrays perl hashtable
我是Perl和Linux的新手.我试图在Perl中编写一个程序来查找数组中的元素数.(这个数组应该由当前目录中扩展名为".txt"的文件组成.然后我计划使用这个数组将所有".txt"文件读入一个哈希值.)但是,我不断得到一个数组大小= 0.我知道我的目录中有超过8个".txt"文件,所以我不会有超过8个数组元素吗?
我的计划如下:
#!/user/bin/perl
my $readfdir = '.';
opendir(DIR, $readfdir) or die $!;
my @readf = glob(".*.txt");
my $arrSize = @readf;
print "array size = $arrSize\n";
Run Code Online (Sandbox Code Playgroud)
请指导我做错了什么.谢谢!
你的全球化很可能不是你的想法
my @readf = glob(".*.txt");
Run Code Online (Sandbox Code Playgroud)
您正在使用看起来像正则表达式语法的东西,即.*匹配任何字符串,但在glob中,即*.所以它应该是:
my @readf = glob("*.txt");
Run Code Online (Sandbox Code Playgroud)
另外,如果使用glob代替,那么你的opendir语句是多余的.使用opendir/readdir或glob.