perl issue ..


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting perl issue ..
# 1  
Old 09-12-2008
Question perl issue ..

hi
one perl issue i have xml file with 2 values and one condition b.w them
Code:
<rule>
     <val1>12</val1>
     <cond>and</cond>
     <val2>13</val2>
</rule>

i read these values in hash in perl code
$one{val1} = 12
$one{cond} = and
$one{val2} = 13
now i want to form query from this
like if val >= val1 and val <= val2 then do something how to do this in code ?

Code:
if ( val >=  $one{val1} $one{cond} val <= $one{val2} )

this throws error how can i write this kind of statement ? i want this for server monitor script.
# 2  
Old 09-12-2008
That's a pretty wicked idea, but if you really think you want to do it,

Code:
if (eval "$val => $one{val1} $one{cond} $val <= $one{val2}")

... assuming the "val" in your example is really actually $val

You should realize that with the double quotes, what eval sees is just a string, no variables. Compare: print "$val => $one{val1} $one{cond} $val <= $one{val2}" -- eval will evaluate what the corresponding print prints.
# 3  
Old 09-12-2008
thanx for reply i think i should explain u whole situation

i have unix server monitor script in which i have many rules which are hard coded so even for slightest change i have to change code so i have created xml file with no of primary conditions , relation bw them like ( and / or ) actual condition and so on ...

i spent entire day on new code architecture but i think i have to go with little hard coding even i thought its pretty wicked idea but thanx for ur reply i learned something new ....
# 4  
Old 09-14-2008
You can use a look up hash that points to subrotuines depending on the operator, an short example:

Code:
%com = (
   and => \&and,
);	

$one{val1} = 9;
$one{cond} = 'and';
$one{val2} = 13;
$val = 10;

if ($com{$one{'cond'}}->($val,$one{'val1'},$one{'val2'})) {
   print "true";
}

sub and {
   my ($v0,$v1,$v2) = @_;
   return(1) if ($v0 >= $v1 && $v0 <= $v2);
   return(0);
}

Note that '=>' is not a comparison operator, it is the comma operator.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Perl - EMail issue - NEED Help

I have a perl that is sending emails in a bad format: "begin 644 Included.doc M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BH*4U5#0T534T953"!-1$XG<R!F;W(@07)C:&EV92!022`M M($-A;F-E;`HJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ... (1 Reply)
Discussion started by: mrn6430
1 Replies

2. Shell Programming and Scripting

Out of memory issue in perl

I am getting a out of memory issue while executing the perl program. Per version : /opt/acc_perl/lib/site_perl/5.14.2 Read in 54973 total records Read in 54973 table records from table. Out of memory! so the job get failed due to out of memory. need to get rid of the out of memory... (3 Replies)
Discussion started by: ramkumar15
3 Replies

3. Shell Programming and Scripting

Perl format issue

Input : day :15 and count -100 printf ("%6.6ld %10.10s %s\n",day,count) any idea what would be the format it will be. (3 Replies)
Discussion started by: ramkumar15
3 Replies

4. Shell Programming and Scripting

PERL - issue with OPEN

Hi, I have a menu script written in PERL which calls some shell scripts and displays the return. I'm having a problem with OPEN. A section of the code is below: `./scriptlist.ksh 1`; open OUTPUT, "</home/$SCRIPTUSER/output"; { local $/ = undef; $_ =... (2 Replies)
Discussion started by: chris01010
2 Replies

5. Shell Programming and Scripting

perl command issue

Hi, Please could someone advise on a perl command : export ENVPROP="$HOME/cfg/environment.properties.template" export LM_LICENSE=`awk -F= '!/^#/ && /LM_LICENSE/{print $2}' environment.properties` echo $LM_LICENSE $DATA_FILE/licenses/sample.demo.lic perl -i -npe... (1 Reply)
Discussion started by: venhart
1 Replies

6. Shell Programming and Scripting

wc -l command issue with perl

Hi Team, the Following program execute with out error but the out is not save with create2.txt. kindly help me!!! print "Enter your Number \n"; my $name = <STDIN>; if ($name =="*91111*") { @dirlist1 = `wc -l $name > create2.txt`; } else {print "do not match";} (3 Replies)
Discussion started by: adaleru
3 Replies

7. Shell Programming and Scripting

Perl issue - please help!

Hello. I've been writing some code in Perl to read in strings from html files and have been having issues. In the html file, each "paragraph" is a certain file on the website. I need to find every one of the files that is a certain type, in this case, having green color....therefore... (7 Replies)
Discussion started by: akreibich07
7 Replies

8. Shell Programming and Scripting

Perl Issue

Hi, I got this script from the web, this generates an LDAP report in CSV format. #!/usr/bin/perl # # Copyright (c) 2004 # Ali Onur Cinar &060;cinar&064;zdo.com&062; # # License: # # Permission to use, copy, modify, and distribute this software and its # documentation for... (23 Replies)
Discussion started by: raj001
23 Replies

9. Shell Programming and Scripting

Perl Script Issue - Please Help * Thanks!!!

Please help me with my script please. I am trying to do the following: 1. Read files for the current directory 2. Open and read from nbe files files only 3. Read only the lines with the results pattern 4. Split the line and print 3rd field Please indicate what line I need to modify. ... (8 Replies)
Discussion started by: jroberson
8 Replies

10. Shell Programming and Scripting

issue with if loop in perl

Hi I have a log file, I am having problem with "if else" loop in my perl script which does, find a string in that file ,If that string is found append to success.txt else append it to failed.txt. problem is: else part of loop it is not working I am adding problem part of the script. ... (4 Replies)
Discussion started by: amitrajvarma
4 Replies
Login or Register to Ask a Question