若干条记录,如下所示。
BGM001.....
NADabcd....
SG001uiqt...
SG17001+09999...
SG17002+1256....
SG7xxxxxxx....
UNT20071217
其中BGM、NAD、SG001、SG17001、SG17002、SG7、UNT是RecordType。现在要求对于每条记录返回其RecordType。该问题麻烦在RecordType的长度不确定,无法通过$RecordType=substr($_,0,$length)来获得。假设每条记录使用$_变量来代表。
但是有一点是确定的,所有的RecordType只有这7种。此时可以利用s命令来解决。
s用来在某个字符串中查找匹配模式,并进行个性化替换。
my recordType
$RecordType = $_;
$RecordType =~ s/(BGM|NAD|SG001|SG17001|SG17002|SG7|UNT).*/$1/;
注意,这里最好先将$_的值赋给$RecordType,因为s命令会改变$_的值。