在使用perl重命名文本文件时,在文本文件末尾出现问号

索米尔什马

我是Perl的新手,我试图通过Perl脚本下载链接,如下所示:

use strict;
use warnings;
use Cwd qw(abs_path);
use File::Path qw(make_path remove_tree);
use LWP::UserAgent();
use LWP::Simple;
use HTML::LinkExtor;
my $path = abs_path();

print "please provide input link from above for example https://ftp.ncbi.nlm.nih.gov/genomes/ASSEMBLY_REPORTS/prokaryote_type_strain_report.txt\n";
defined(my $link = <>) or die "unable to take arguments from command line $!";
         
my $string = "$link";
$string  =~ s/(.*)\///;
my $text_file = print $';
getstore($link, "$path/links_ncbi/$text_file") or die "unable to get required text file $!\n";

rename("$path/links_ncbi/1", "$path/links_ncbi/$'") or die "unable to rename text file $!\n";

它完成了将所需文本文件下载到所需目录中的工作,但是当我尝试使用重命名功能对它进行重命名时,它也做了,但是我总是在文本文件名后面出现一个问号,如下所示:

prokaryote_type_strain_report.txt?

我检查了文件的常数,但是唯一的是“?”,我无法找出发生这种情况的原因,因此我寻求您的指导,请告诉我为什么发生这种情况以及如何对其进行排序。我也尝试了以下解决方案:

vim +'set ff=unix | x' test.pl

dos2unix test.pl

另外,我尝试了

sed -i 's/\r$//' test.pl

正如前面的问题中提到的解决方案那样,但该解决方案是专门针对bash脚本的,但是在Perl脚本上尝试过却没有用。

我也尝试检查它并执行以下操作:

 print qq{rename("$path/links_ncbi/1", "$path/links_ncbi/$'")} or die "unable to rename text file $!\n";

但是一切似乎都很好,请告诉我我在哪里做错了,为什么会这样?重命名文件时出现,非常需要您的帮助,我们将不胜感激。谢谢。

是我尝试的解决方案的链接。

伯恩哈德·M。

$link包含换行符,问号只是此类不可打印字符的占位符。

尝试 chomp($link);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章