亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2033 | 回復: 4
打印 上一主題 下一主題

perl菜鳥求助,請問這個題目應該怎么寫呀,自己寫了一個可是總是出錯 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2017-05-06 17:47 |只看該作者 |倒序瀏覽
有一個ko_class.xls文件,現(xiàn)在需要把它的class展開。
文件說明:
>Metabolism ##行首為">"的為A class
@Global and overview maps ##行首為"@"的為B class
01100  Metabolic pathways ##行首為ko號的為C class
01110  Biosynthesis of secondary metabolites
01120  Microbial metabolism in diverse environments
01200  Carbon metabolism
01210  2-Oxocarboxylic acid metabolism
01212  Fatty acid metabolism
01230  Biosynthesis of amino acids
01220  Degradation of aromatic compounds
@Carbohydrate metabolism
00010  Glycolysis / Gluconeogenesis
00020  Citrate cycle (TCA cycle)
00030  Pentose phosphate pathway
00040  Pentose and glucuronate interconversions
00051  Fructose and mannose metabolism
00052  Galactose metabolism
00053  Ascorbate and aldarate metaboliusm
00500  Starch and sucrose metabolism
00520  Amino sugar and nucleotide sugar metabolism
00620  Pyruvate metabolism
文件輸出格式:ko\tA class\tB class\tC class\n
如:ko Metabolism Global and overview maps 01100  Metabolic pathways
    ko Metabolism Global and overview maps 01110  Biosynthesis of secondary metabolites
...
    ko Metabolism Carbohydrate metabolism         00010  Glycolysis / Gluconeogenesis
下面是我寫的

#!usr/bin/perl -w
use strict;
open(IN,"ex2");
my %result;
my $lastLnNum = 1;
while ( chomp (my $line = <IN>) ) {
        $line =~ /^(.)(.+)$/;
        $result{$1} = [] unless exists $result{$1};
        push @{$result{$1}}, $2;
        $lastLnNum++;
}
my @idx = (0..$lastLnNum);
my @symOrd = sort keys %result;
foreach my $idx ( @idx) {
        foreach my $sym ( @symOrd ) {
                print "$result{$sym}[$idx]\t";
        }       print $/;
}
結果總是說Use of uninitialized value in concatenation (.) or string at ex2.2 line 16, <IN> 。沒明白
...

論壇徽章:
0
2 [報告]
發(fā)表于 2017-05-08 17:52 |只看該作者
#!/usr/bin/perl

my ( $ko, @class ) = "ko\t";
while (<DATA>) {
    if (/^\d/) {
        print $ko, @class, $_;
        next;
    }
    chomp;
    my $X = /^@/;
    $class[$X] = substr( $_, 1 ) . "\t";
}

__DATA__
>Metabolism
@Global and overview maps
01100  Metabolic pathways
01110  Biosynthesis of secondary metabolites
01120  Microbial metabolism in diverse environments
01200  Carbon metabolism
01210  2-Oxocarboxylic acid metabolism
01212  Fatty acid metabolism
01230  Biosynthesis of amino acids
01220  Degradation of aromatic compounds
@Carbohydrate metabolism
00010  Glycolysis / Gluconeogenesis
00020  Citrate cycle (TCA cycle)
00030  Pentose phosphate pathway
00040  Pentose and glucuronate interconversions
00051  Fructose and mannose metabolism
00052  Galactose metabolism
00053  Ascorbate and aldarate metaboliusm
00500  Starch and sucrose metabolism
00520  Amino sugar and nucleotide sugar metabolism
00620  Pyruvate metabolism

論壇徽章:
0
3 [報告]
發(fā)表于 2017-05-08 17:59 |只看該作者
回復 2# Okelani

大神,我還想問一個問題,就是如果我有一個很長的字符串,我想在輸出這個字符串的時候每60個字符串為一行,而不想那個字符串占滿了屏幕的整行再換行,請問怎樣才能做到呀

論壇徽章:
0
4 [報告]
發(fā)表于 2017-05-08 18:16 |只看該作者
回復 3# qinmin23


my $longString = join '', 'A' .. 'Z';
my $cut = 5;    # 每5個字符串為一行
$longString =~ s/(.{$cut})/$1\n/g;
say $longString;


output:

ABCDE
FGHIJ
KLMNO
PQRST
UVWXY
Z

論壇徽章:
0
5 [報告]
發(fā)表于 2017-05-08 19:38 |只看該作者
回復 4# Okelani

謝謝大神,非常正確
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP