【问题标题】:Perl input file dynamically [duplicate]Perl输入文件动态[重复]
【发布时间】:2018-05-08 15:19:35
【问题描述】:

我需要在这一行输入一个变量来动态处理许多文件:

open (INFILE, "< your_input.fa") 

我不知道如何使用 Perl 来完成这项工作。我通常会以类似的方式使用 bash 命令:

NAME1=$PWD
NAME=$(basename "$NAME1") 

bwa mem $NAME.fastq.gz

附加信息:

文件名的前 6 个字符不同,但有常规后缀:

xx-nnn_regular.txt

文件位于以前六个字符命名的目录中:

xx-nnn > xx-nnn_regular.txt

我查看了 Perl 手册,但我没有编程背景,请有人帮助我吗?

How do I run a Perl script on multiple input files with the same extension? 我用这里的信息来回答我的问题——谢谢!

【问题讨论】:

  • 您应该阅读perlmaven.com/open-and-read-from-files 和以下章节。如果您想从命令行读取文件名,您还应该查看perlmaven.com/argv-in-perl,如果您想根据一些规则轻松找到所需文件,请查看File::Find::Rule
  • 你的意思是从命令行读取文件名,还是基于'当前路径'?
  • Stack Overflow 并不是从头开始学习 Perl 教程的地方。
  • 是的,我想基于当前路径输入文件名。谢谢!

标签: perl input


【解决方案1】:

当我将 fq 文件转换为 fa 文件时,我必须打开一个动态文件进行写入。我有我试图转换为命令行参数的文件,因此负责的代码是这样的。

 my $directory = "output";
 if ($ARGV[0] =~ /^(\S*).fq/) {
     $location = $1;
 }
 open (OUTPUT, ">$directory/$location.fa");

您可以在打开文件时使用变量。

此代码应该为您动态打开文件,但您输入文件的方式无疑会与我的解决方案不同。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2010-11-04
    • 2012-07-09
    • 2016-02-29
    • 1970-01-01
    • 2016-02-05
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多