我知道以前有人问过这个问题,并且我已经完成了研究,我认为我的问题是我正在使用符号引用?然而,我认为这些危险并不适用于此,而且说实话,我不明白我所查找的替代方法。 我使用 glob 创建文件列表。然后我打开每个文件,找到始终为 $split_line[3] 的名称,然后我想重命名该文件“$split_line[3]-stock.txt”
我的代码是:
my @eng_stock_file = glob ('./CRM/*.txt');
foreach my $file (@eng_stock_file) {
chomp $file;
open (CRM_FILE, '<', $file) or die ("Can't open $file\n");
while (my $line = <CRM_FILE>) {
if ($line !~ m/^\(Do Not Modify\)/) {
my @split_line = split("\t", $line);
my $engineer = $split_line[3];
#print $engineer;
close ($file);
last;
}
my $new_file = "$engineer-stock.txt";
#print $new_file;
move ($file, $new_file) or die "Couldn't rename the stock file.\n";
}
}
尝试创建 $new_file 不起作用,我非常感谢您的帮助。谢谢。
my @eng_stock_file = glob ('./CRM/*.txt');
foreach my $file (@eng_stock_file) {
chomp $file;
my $CRM_FILE;
open ($CRM_FILE, '<', $file) or die ("Can't open $file\n");
my $new_file;
while (my $line = <$CRM_FILE>) {
if ($line !~ m/^\(Do Not Modify\)/) {
my @split_line = split("\t", $line);
my $engineer = $split_line[3];
#print $engineer;
$new_file = "$engineer-stock.txt";
last;
}
}
close ($CRM_FILE);
die "Missing new filename.\n" if !defined($new_file);
#print $new_file;
rename($file, $new_file) or die "Couldn't rename the stock file: $!\n";
}