#!/usr/bin/perl
use strict;
use warnings;
my $filename_pdb = 'myhalf1.pdb';
my $filename_in = "topol1.top";
my $filename_out = "$filename_in.new";
open my $fh_pdb, '<', $filename_pdb
or die "opening '$filename_pdb': $!";
my $sol1 = grep /HW1/,<$fh_pdb>;
close $fh_pdb;
print "\$sol1 = $sol1\n";
open my $fh_in, '<', $filename_in
or die "opening '$filename_in': $!";
open my $fh_out, '>', $filename_out
or die "opening '$filename_out': $!";
print "processing '$filename_in' \n";
my $count = 0;
while (<$fh_in>) {
if ( s/SOL .*/SOL $sol1/g ){ # change as required
++$count;
}
print $fh_out $_;
}
close $fh_in;
close $fh_out;
print "$count lines changed\n";
poj |