查找数组中的元素数(Perl)时出错?

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)

请指导我做错了什么.谢谢!

TLP*_*TLP 5

你的全球化很可能不是你的想法

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.