Thank you Beech, will play around with the code you pasted as well.
For now I managed to get it to work using the following -
#!/usr/bin/perl -w
use strict;
#my $location ="/location2.html";
my $location ="/";
my $file_name ='pconn.conf';
my $conf_new ;
my $max_connections=10;
$/ = undef;
#Open file for reading and slurp into file
open (FILE, "< $file_name") or die $!;
my $file = <FILE>;
close FILE;
# check for the block we want
if ($file =~ m/\<Location\ $location.+?\<\/Location\>/s){
my $first=$`; #Everything before matched string
my $block = $&; #Matched block
my $second=$'; #Everything after matched string
if($block =~ s/MaxConnPerIP\s*(.+?)*/MaxConnPerIP $max_connections
+/g) {
$conf_new= $first . $block . $second;
}
}
# Open file for writing and dump matched and unmatched block
open (OUTFILE, "> $file_name.tmp") or die "cannot open $file_name.tmp
+for write $!";
print OUTFILE $conf_new;
close OUTFILE;
# save copy of original file
rename ($file_name,"$file_name.bak") || die "problem with rename $!";
# replace original with the modified version
rename ("$file_name.tmp", $file_name) || die "problem with rename $!";
|