【问题标题】:Red underline (error) in PerlPerl 中的红色下划线(错误)
【发布时间】:2015-05-17 01:30:29
【问题描述】:

我正在使用 Perl 进行生物信息学项目。我们应该创建一个文件(在本例中为 chrom_seq.txt),然后让 Perl 读取它。但是,我认为终端无法识别该文件,因为我收到与 chrom_seq.txt 中的 h 相对应的错误,并且整个位显示为红色下划线。我尝试重新输入文件名并制作文件的新副本,但没有成功。有什么建议吗?

# PatMatch.txt => takes DNA sequence from user
# and returns the reverse complement
open ($DNA_Chromosome, “chrom_seq.txt”);
# Remove non-ATGC characters from strings
$DNA_Query =~ s/[^ATGC]//g;
$DNA_Chromosome =~ s/[^ATGC]//g;

【问题讨论】:

  • 你遇到了什么错误?红色显示的是什么?你真的使用“ 和” 而不是双引号吗?你应该经常检查打开是否成功,如果只使用open(...) or die($!);。
  • 尝试添加输入示例和预期输出
  • 嗨,我得到的错误是“无法识别的字符 \xE2;标记为
  • 将“chrom_seq.txt”更改为“chrom_seq.txt”stackoverflow.com/questions/29881571/…
  • 您可能应该在脚本顶部添加use strict; use warnings;。您应该检查您是否成功打开了文件。您可能不应该尝试使用正则表达式编辑文件句柄。您将文件句柄中的一行数据读入其他变量,然后修复内容:while (my $line = <$DNA_Chromosome>) { $line =~ s/[^ATGC]//g; ... } 或附近。 (您可以将其缩写为:while () { s/[^ATGC]//g; ... }` 使用“隐式”变量$_。

标签: perl


【解决方案1】:

诊断 - 引用有问题 - 从 ikegami 和 keety 窃取。

一般建议:对于故障排除,请降低复杂性。使用

use strict;
use warnings;

#print “chrom_seq.txt”;  # error: Unrecognized character \x93 in column 7 at 30282450.pl line 4.
#print 'chrom_seq.txt'; # 'works'
print qw(chrom_seq.txt); # last resort

输出:

perl 30282450.pl
chrom_seq.txt

获得对诊断的信心。

补救措施:使用合适的编辑器(十六进制视图、编码),不要从花哨格式(例如 PDF)的源中复制/粘贴。

【讨论】:

    猜你喜欢
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 2020-07-29
    相关资源
    最近更新 更多