将文本附加到perl中的一行

时间:2015-08-14 11:42:17

标签: perl

我在文件

中有这些行
VSSC!.extra181 + NET VSSC!

+ DIRECTION INOUT
+ USE GROUND
+ LAYER BA ( 0 0 ) ( 1500 80870 )
+ PLACED ( 1151560 1571000 ) N ;

我需要将第三行复制到第一行的末尾。有30,000个类似的案例,所以我只需要知道如何为一个案例做这样的事情,以便我可以重复其他案例。

`open (FILE, $filetoget) or die $!
while (<FILE>)
{if($_=~m/regular expression to catch the third line/)
{@array=$_; $line=~s/\!$/ .@array/; print $Line; } `enter code here`

我没有得到附加部分..

1 个答案:

答案 0 :(得分:1)

使用Tie::File模块

非常简单地完成

将数组绑定到文件并将第三个数组元素追加到第一个

看起来像这样。程序期望将文件的名称修改为命令行上的参数

use strict;
use warnings;

use Tie::File;

tie my @file, 'Tie::File', $ARGV[0] or die $!;

$file[0] .= $file[2];

输出

VSSC!.extra181 + NET VSSC!+ DIRECTION INOUT

+ DIRECTION INOUT
+ USE GROUND
+ LAYER BA ( 0 0 ) ( 1500 80870 )
+ PLACED ( 1151560 1571000 ) N ;