gpt4 book ai didi

perl - 连接中未初始化的值

转载 作者:行者123 更新时间:2023-12-02 09:35:09 26 4
gpt4 key购买 nike

我遇到了“串联中未初始化的值”错误,该错误在本论坛中进行了深入讨论,通常指的是 undefined variable 。

但是,作为新手,我不知道下面的代码中存在问题的“原因”。

错误涉及变量 $sb 和 $filesize。

非常感谢任何见解。

谢谢!!!


#!/usr/bin/perl

use strict;
use warnings;
use File::stat;

#The directory where you store the filings
my $dir="/Volumes/EDGAR1/Edgar/Edgar2/10K/2009";

opendir(DIR, $dir) or die $!;

while (my $file = readdir(DIR)) {

# Use a regular expression to ignore files beginning with a period
next if ($file =~ m/^\./);

#my $form_type=substr($line,62,12);
#my $cik=substr($line,74,10);
#my $file_date=substr($line,86,10);

#Note that for file date, we need to get rid of
#the - with the following regular expression.
#month-day-year and some years there is not.
#This regular expression
#my $file_date=~s/\-//g;
my $filesize = -s "$file";
my $sb = (stat($file))[7];

print "$file,$sb,$filesize\n";

}

closedir(DIR);
exit 0;

最佳答案

您正在使用 File::stat模块。该模块实现了覆盖 Perl 内置功能的 stat 功能。它返回一个对象而不是列表。所以这个:

my $sb = (stat($file))[7];

导致 $sb 未定义,因为列表中只有 1 个对象。您所做的就是使用模块函数:

my $sb = stat($file)->size();

关于perl - 连接中未初始化的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27084998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com