perl help, please

Bart Garst bartgarst at cox.net
Tue Mar 18 05:45:27 MST 2008


David wrote:
> I'm trying to write a perl script that will
>
> - read a txt file with name=value pairs
> - loop through a shell script (see attached .txt file)
> - grab the contents of a particular function
> - replace the name=value pairs from the function with the value from 
> the txt file
> - grab the corresponding case statement from the shell script
> - search and replace the values in the case statement
> - write it all out to a new file in the correct order.
>
> I need to be able to run this script on about 200 ksh scripts, mostly 
> with the same name=value pairs.   However, there are many scripts with 
> different/extra name=value pairs.
>
> ex:
>
> It needs to take the abqenv () function, copy the whole thing to 
> newenv (), replace all the value of all the variables with the new 
> value that it gets from the txt file.   Then put that new function 
> *after* the abqapps function.
>
> next, it needs to grab each abqapps) sections (under the case 
> statement) and do the same thing.
>
> Unfortunately, it's cutting off the "abqenv () {"  and "}" lines from 
> the abqenv part.  argh!
>
>
> I have attached the perl script I have so far.  Like I said, it mostly 
> works.
>
>
> Please don't laugh too much at the ugliness of my perl.   I'm no perl 
> monk by any stretch.
>
> Any tips/help would be appreciated.
>
> Thanks
> David
>
>
> ------------------------------------------------------------------------
>
> ---------------------------------------------------
> PLUG-discuss mailing list - PLUG-discuss at lists.plug.phoenix.az.us
> To subscribe, unsubscribe, or to change your mail settings:
> http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss
I think your issue is with lines 106 & 107 in the perl script.

You're calling 'next' when you encounter the "abqenv () {" line - BEFORE 
you're adding that line to the @newfile array.

I didn't debug the entire thing, but it also looks like you're doing the 
same thing with the "}" (line 109 in the perl script).

Hopefully this helps.

Bart


More information about the PLUG-discuss mailing list