小编Mic*_*ela的帖子

如何在Perl中将空格转换为下划线?

我正在编写一个代码来创建以数组中的一列命名的文件,然后在其中包含另一列的所有常用值.我已成功完成此操作,但现在我想消除文件名之间的空白区域并将其转换为下划线.我怎么做?

#!/usr/local/bin/perl

use strict;

my @traitarray;
my $traitarray;
my $input ;
my %traithash ;
my $t_out ;
my $TRAIT;
my $SNPS;

open ($input, "gwas_catalog_v1.0-downloaded_2015-07-08") || die () ;

while(<$input>) {
    @traitarray = split (/\t/);
    $TRAIT = $traitarray[7];
    $SNPS = $traitarray[21];

        if (!exists $traithash {$TRAIT}) {
                open ($t_out, ">outputFiles/".$TRAIT.".txt");
                print ($t_out "$SNPS\n"); 
                $traithash {$TRAIT} = 1 ;
                push (@traitarray, $TRAIT) ;
        }
        else {
            print $t_out "$SNPS\n";
            }
}

foreach ($traitarray) {
    close "$TRAIT.txt";

}
Run Code Online (Sandbox Code Playgroud)

我曾尝试寻找答案,但许多问题要么包含其他内容,要么在bash终端中如何解决这个问题,我还不熟悉,因为我还是新编码.

该文件是10947980行,有33列.

perl

1
推荐指数
1
解决办法
69
查看次数

如何在perl中写出科学记数法?

我一直在研究一个项目,我基本上要说下一个目标

"在第[27]栏中,如果值大于10^-8删除文件"

如何写10^-8一个程序?

#!/usr/local/bin/perl

use strict;
use warnings;

my @traitarray;
my $traitarray;
my $input ;
my %traithash ;
my $t_out ;
my $TRAIT;
my $SNPS;

open ($input, "gwas_catalog_v1.0-downloaded_2015-07-31.tsv") || die () ;

while(<$input>) {
    @traitarray = split (/\t/);
    $TRAIT = $traitarray[7];
    $SNPS = $traitarray[21];

    if (!exists $traithash {$TRAIT}) {
            $TRAIT =~ tr/ /_/ ;
            $TRAIT =~ tr/:/-/ ;
            $TRAIT =~ tr/\//-/ ;
            $TRAIT =~ tr/*/-/ ;
            open ($t_out, ">outputFiles/".$TRAIT.".txt");
            print $t_out "$SNPS\n";
            $traithash {$TRAIT} = 1 …
Run Code Online (Sandbox Code Playgroud)

perl scientific-notation

1
推荐指数
1
解决办法
522
查看次数

标签 统计

perl ×2

scientific-notation ×1