加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

我是第一次使用Perl

发布时间:2020-12-16 06:05:50 所属栏目:大数据 来源:网络整理
导读:我参加了一个Bioinformatics课程,并且在ReverseComp.txt第4行调用了一个“Undefined subroutine main :: Print”.错误 # ReverseComp.txt = takes DNA sequence from user# and returns the reverse complementprint ("please input DNA sequence:n");$DNA
我参加了一个Bioinformatics课程,并且在ReverseComp.txt第4行调用了一个“Undefined subroutine& main :: Print”.错误

# ReverseComp.txt => takes DNA sequence from user
# and returns the reverse complement

print ("please input DNA sequence:n");
$DNA =<STDIN>;

$DNA =~tr/ATGC/TACG/;   # Find complement of DNA sequence

$DNA =~reverse ($DNA);  # Reverse DNA sequence

print ("Reverse complement of sequence is:n");

print $DNA."n";

这是我的代码,我用第4行尝试了一些不同的东西,但没有结果.有什么建议? (我是在提示中写的,一切看起来都正确……)

解决方法

我有一些与您的代码相关的注释:

>使用.pl扩展名而不是.txt命名脚本.这是Perl脚本的公认接受扩展(以及Perl模块的.pm,带有可重用代码的库)
>始终使用strict strict启动脚本;使用警告;这些句子可以帮助您避免常见错误.
>在使用之前声明变量(参见my function)
> chomp您从STDIN输入以删除最后的换行符.
>对反向函数的调用很奇怪.我认为$DNA =?反向($DNA);应该是$DNA =反向($DNA);
> reverse function更常用于Perl阵列;用一个字符串你可以获得该字符串的反转版本,就像我预期的那样.
> print function可能会列出参数列表,因此您可以用一个句子打印多个内容
>您可以在许多地方省略括号,例如反向($a)与反向$a相同.两者都有效,但后者更适合Perl编写代码的风格.建议阅读Perl style guide

与您的问题相关,我认为您的脚本是正确的,因为打印函数存在于Perl中,并且您得到的错误与Print相关(使用大写,这在Perl中很重要).您可以运行您在此处发布的其他脚本.

这是您应用先前注意事项的脚本(ReverseComp.pl):

use strict;
use warnings;

print "please input DNA sequence:n";
chomp( my $DNA = <STDIN> );

$DNA =~ tr/ATGC/TACG/;    # Find complement of DNA sequence
$DNA = reverse $DNA;      # Reverse DNA sequence

print "Reverse complement of sequence is:n",$DNA,"n";

无论如何,欢迎来到梦幻般的Perl世界,并准备好享受您的旅行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读