Hi list,
I process a set of files and end up with a hash with server, administrator pairs. I need to read in another file and modify (or add if it does not exist) a line containing the word administrator following the line with the server name.

Hash pairs:
Server1  Bob
Server2  Chuck
Server3  Jon

File:
server_name       Server1
location               basement
administrator      Wilma
OS                       RHEL4
server_ip             10.0.0.5

server_name       Server2
location               basement
administrator      Fred
server_ip             10.0.0.6

server_name       Server3
location               basement
server_ip             10.0.0.7

server_name       Server4
location               basement
administrator      Barney
server_ip             10.0.0.8

So I know how to change the line, I just am not sure how to search for ONLY the line I need. I should start looking after I find the server name and if I run into the next server definition while not finding the line for administrator, add it.

I thought I could do something like this:
while (<>) {

   if ($key .. /server_name/) {

       #  if line exists, modify

       #  else add

   }

}

but it doesn't seem to work as I expected.

Also, the servers will not be in the same order in the hash and the file, so I will need to start searching at the top of the file each time. I know how to process a file a line at a time, but am unsure about how to slurp entire file into RAM and process it there.

Any pointers will be greatly appreciated! Thanks and sorry for the lengthy post!



--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to