请教如何判断空格?

请教如何判断空格?

请教如何判断空格?
我的数据都是下面的模式,第一个星号前面是数字,然后是*"序列的ID号#第一行从开头起始,后面的行前面都有很多空格.我想提取第一个*和第一个#号之间的序列ID号,该怎么提取?
8*"ENST00000328393_P#EAN57 PROTEIN (FRAGMENT).
[Source:SWISSPROT;Acc:O43247]#ENSG00000182192
(1)#(35630441 35630441 35630620 35630620 35658831)#4001
1559*"ENST00000281321#POU DOMAIN, CLASS 4, TRANSCRIPTION FACTOR 2
(BRAIN-SPECIFIC HOMEOBOX/POU DOMAIN PROTEIN 3B) (BRN-3B).
[Source:SWISSPROT;Acc:Q12837]#ENSG00000151615
(1)#(148137715 148137920 148139587 148141250

我用现在每次从文件里面取一行,用if判断line[0]是不是数字/\d/,如果是的话,再提取.但是后面几行因为line[0]是空格,总是出现下面的错误
Use of uninitialized value in string eq at selname.pl line 11, <FIRST> line 3.
改怎么判断才行?
如果整个文件都和上面一样.
如果整个文件都和上面一样的话,可用^[0-9]判断行是否以数字开头
至于提取数据,先两次index(),再substr();
刚接触perl不久,对正则表达式不熟,可能会有更简单的方法.
#perl -e 'map{ /^\d+\*"(.
#perl -e 'map{ /^\d+\*"(.*?)#/ && print "$1\n" } <>' filename
谢谢!一句话就可以搞定了,.
谢谢!一句话就可以搞定了,好佩服啊
但是还是不明白为什么会出.
但是还是不明白为什么会出现Use of uninitialized value in string eq at selname.pl line 11, <FIRST> line 3.
难道空格就是没有定义?还有为什么用if(defined($line[0]))判断也出现这个错误?
[quote]回复给 wormhole :.
[quote]回复给 wormhole : #perl -e 'map{ /^\d+\*"(....[/quote]

或者使用 perl 自带的命令行参数 #perl -nle '/^\d+\*(.*?)#/ && print $1' filename
参见 Perl命令行应用介绍 http://www.perlchina.org/archive/archive.php?action=archive&page=19
[quote]Perl命令行应用介绍 http://www.perlchina.org/archive/archive.php?action=archive&page=19 [/quote]
很不错
你们真的很强啊!羡慕.