0

私はPerlの初心者なので、助けてほしいです。ユーザーが最大3種類の入力を提供できるプログラムを作成しており、特定のデータを抽出する必要があります。

ASP_72_2 D72_2 72_2 (ASP = 残基名、D = ASP の残基コード、72 = 残基番号、2 = 膜貫通番号)

データを 1 行に格納する賢い方法はありますか?

私の考え(疑似コード)は、次のように各入力の部分文字列をチェックすることです。

if ((substr($input, 0,3)) eq 'ASP')
{
        do way 1;
}elsif ((substr($input,0,1)) eq 'D'))
{
        do way2;
}

etc...etc... 最終的には、異なる残基名、異なる残基コード、残基番号、および TM 番号を処理できるようにしたいと考えています。

4

3 に答える 3

1

あなたが説明することは有効な方法ですが、私は正規表現でそれを行います:

    if ($input =~ /^ASP/){
        do_way1($input);
    }
    elsif ($input =~ /^D/){
        do_way2($input);
    }
    elsif ($input =~ /^\d{2}/){
        do_way3($input);
    }
    else {
        not_recognized($input);
    }

sub do_way1 {
    my $input = shift;
    ...
}
...
于 2013-07-26T05:59:40.557 に答える