|
发表于 2012-5-23 22:12:24
|
显示全部楼层
本帖最后由 walker 于 2012-5-23 22:13 编辑
不太清楚你具体的应用情况,感觉结合正则和split 通用性会更强些,适用不同端口数目的情况。比如
$_="XU21 n26 n3 n10 NOR2X1";
if(/^\s*XU\d+\s+/){
chomp;
s/^\s*//;
s/\s*$//;
my @line = split;
my @new = map {($line[$_],"$line[$_]n")} (1 .. $#line-1);
$out=join " ",($line[0],@new,"nClk","$line[-1]_sabl");
}
say $out; #打印
######################
如果单纯用正则表达式,通用性需要蛮多考虑。以下仅给出一个简单示意:
假设你的网表文件打开的句柄为$fh;
while(<$fh>){
($out= $_)=~ s/^\s*(XU\d+)\s+
(n\d+)\s+
(n\d+)\s+
(n\d+)\s+
(\w+)\s*$
/$1 $2 $2 $3 $3n $4 $4n nClk $5_sabl/x;
}
仅供参考哈 |
|