Some help with Perl please (deciphering)


 
Thread Tools Search this Thread
Top Forums Programming Some help with Perl please (deciphering)
# 1  
Old 10-15-2010
Some help with Perl please (deciphering)

I am trying to simplify the coding in a script I was given, but it was written 7-10 years ago and is pretty complicated. below is a tidbit, if someone can break it down for me I would appreciate it.

perl code:
  1. sub ParseText
  2. {
  3.     my ($line, $key, $value, $sub, $script);
  4.        
  5.     foreach $line (@_) {
  6.         while (($key => $value) = each %FORM)
  7.             { $line =~ s/\[$key\]/$value/ig }
  8.         while (($key => $value) = each %ENV)
  9.             { $line =~ s/\[\%$key\]/$value/ig }
  10.     if ($line =~ /<script/) {$script = 1;}
  11.     if ($script != 1) {
  12.             $line =~ s/\[[^<](.)*?[^>]\]//g;
  13.         } else {
  14.             $line =~ s/([^A-Za-z0-9\-_,])\[[^<](.)*?[^>]\]/$1/g;
  15.         }
  16.     if ($line =~ /<\/script/) {$script = 0;}
  17.     }
  18.     foreach $line (@_) {
  19.         while ($line =~ /\[<((.)*?)>\]/) {
  20.             $sub = $1;
  21.  
  22.             if ($sub !~ /^([\d\+\*\/\-%\.,x<>\(\)\s]|round|ifcond)*$/s) {
  23.                 #Error("Error in expression", $sub);
  24.             }
  25.             $sub = eval $sub;
  26.             $line =~ s/\[<(.)*?>\]/$sub/s;
  27.          }
  28.     }
  29.     return @_;
  30.  
  31. }
  32.  
  33. sub ParseTextMail
  34. {
  35.     my ($line, $key, $value, $sub, $script);
  36.        
  37.     foreach $line (@_) {
  38.         while (($key => $value) = each %FORM)
  39.             {        
  40.                 $value =~ s/\n/\<br\>/g;
  41.                 $line =~ s/\[$key\]/$value/ig            
  42.             }
  43.         while (($key => $value) = each %ENV)
  44.             { $line =~ s/\[\%$key\]/$value/ig }
  45.         $line =~ s/\x7e(\w+)((\[)(\d)(\]))?/eval "\$$1$3$4$5"/e;
  46.     }
  47.     return @_;
  48.  
  49. }

Last edited by Neo; 10-15-2010 at 10:44 AM.. Reason: added highlight=perl tags
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Deciphering AWK code

Dear experts, I am a relative novice in the Unix and came across a very useful code that I regularly use for my research blindly. I am wondering if any of the professional members could kindly briefly explain to me what the code actually does? Many thanks in advance The script is awk... (4 Replies)
Discussion started by: arsalane
4 Replies

2. Programming

PERL: In a perl-scripttTrying to execute another perl-script that SETS SOME VARIABLES !

I have reviewed many examples on-line about running another process (either PERL or shell command or a program), but do not find any usefull for my needs way. (Reviewed and not useful the system(), 'back ticks', exec() and open()) I would like to run another PERL-script from first one, not... (1 Reply)
Discussion started by: alex_5161
1 Replies

3. Programming

Deciphering a tag character string

I have a string, eg 7f30.3 and I want to store things in the following way npos = 7 decform = true width = 30 ndp = 3 I need to read each character one by one. I am coding in fortran but I can try to code it should answer be given in C in the above way. (2 Replies)
Discussion started by: kristinu
2 Replies

4. Shell Programming and Scripting

need help deciphering this if statement

I'm going through my bash book and came across this if statment. if *$)" ]; then the book says that the grep expression means "an initial dash followed by a digit" (which I understand) "optionally followed by one or more digits" That's the part I can't figure out -- I know the * is a... (8 Replies)
Discussion started by: Straitsfan
8 Replies

5. UNIX for Dummies Questions & Answers

Need help deciphering this

I'm reading about command substitutions and came across this little function in my book: function lsd { date=$1 ls -l |grep -i "^.\{42\}$date"|cut -c55- } it's a little example which is supposed to select files by modification date, given as an argument to the function. I... (3 Replies)
Discussion started by: Straitsfan
3 Replies

6. Shell Programming and Scripting

Deciphering strings or variable values

Hi, I have a script at the moment of which reads in simply what the latest version is within a folder i.e. v001, v002, v003 etc and then stores this latest version in a variable i.e. $LATEST would echo v003. I have then cut this string so that I only consider the 003 part. I would then like to... (3 Replies)
Discussion started by: cyberfrog
3 Replies

7. UNIX for Dummies Questions & Answers

Deciphering the Code

Hi people I am trying to learn this code and see how it relates to the old DOS days. I have a line of code that I am not sure what the first part does. Any help will be greatly appreciated. It is from a Save command that is used to backup files to a directory. It goes like this if ;then... (10 Replies)
Discussion started by: coyote1967
10 Replies

8. Shell Programming and Scripting

Help deciphering FTP get perl script

I found this very useful perl script that will check a remote ftp server, search for files of a specific time and get them. When I run the script it works, but it gave me the following error: Couldn't get filename_12-13-07.txt Bad file number What in this script would cause this? I know... (2 Replies)
Discussion started by: bbbngowc
2 Replies

9. Shell Programming and Scripting

Help deciphering script

There are files on a remote server with the file name ending in "mm-dd-yy.txt". The script I am running is: mls "Daily_Service_Text_File_*" /my/local/dir/Filelisting.txt nawk -F_ -f file.awk /my/local/dir/Filelisting.txt | sort -k1n | cut -f2- | tail -1 It worked up too "12-31-07.txt" but... (3 Replies)
Discussion started by: bbbngowc
3 Replies
Login or Register to Ask a Question