Perl subroutine returning different values in HPUX


 
Thread Tools Search this Thread
Top Forums Programming Perl subroutine returning different values in HPUX
# 1  
Old 08-30-2016
Perl subroutine returning different values in HPUX

HI ,
I am running a program on hpux in perl.
I am encountering a strange issue where when i print a variable in the sub which is returning it , it prints a different value but when i call it and store value in a variable it gives a different o/p.

the sub is

Code:
sub CheckConfigFilePattern 
{ 
local($FILE) = @_; 
$intLineCount = 1; 
$intSendOpcmon = 0; 
$intCorrectFormat = 0; 

open(CONFFILEHDR, "< $FILE") or die "$!"; 
foreach $strLine (<CONFFILEHDR>) 
{ 
$strLine = trim($strLine); 
if( length($strLine) != 0) 
{ 
print "##############################\n"; 
print "$strLine \n"; 
print "step 0 \n"; 
if( $strLine !~ m/(^#)|(^\s*(\/|\d+)\s+(\/|\d+)\s+(\/|\d+)\s+(\/|\d+)$)/ ) 
{ 
OpcMsg("OS","minor","ConfigFileError","Error in Config File $FILE : Line No. $intLineCount, Text - $strLine","OpC"); 
$intSendOpcmon = 1; 
print "step 1 \n"; 
} 
if ( $strLine =~ m/(^\s*(\/|\d+)\s+(\/|\d+)\s+(\/|\d+)\s+(\/|\d+)$)/ ) 
{ 
$intCorrectFormat = $intCorrectFormat + 1; 
print "step 2 \n"; 
} 
} 
$intLineCount = $intLineCount + 1; 
} 
close CONFFILEHDR; 
if ( $intCorrectFormat != 1 ) 
{ 
OpcMsg("OS","minor","ConfigFileError","Error in Config File $FILE","OpC"); 
$intSendOpcmon = 1; 
print "step 3 \n"; 
} 
print "1st intSendOpcmon: $intSendOpcmon \n"; 

return $intSendOpcmon; 
}

I am printing intSendOpcmon before retruning it inside sub.

Now I am calling it ,

Code:
$intSendOpcmon = CheckConfigFilePattern($CONFFILE); 
if ( $intSendOpcmon = 1) 
{ 
print "2nd intSendOpcmon:$intSendOpcmon \n"; 
exit 0; 
}


But I am getting different values of retruned variable

Code:
#"./cHmem_util.pl" 1 
1st intSendOpcmon: 0 
2nd intSendOpcmon:1

Please check why function is returning different values inside and outside
Code
# 2  
Old 08-30-2016
Numeric comparison is == ( double equal )

Code:
if ( $intSendOpcmon == 1) 
{ 
print "2nd intSendOpcmon:$intSendOpcmon \n"; 
exit 0; 
}

# 3  
Old 08-30-2016
thanks for the reply , now this part is resolved but again i am facing issue in a subsequent code where I am printing based on value of a variable.

code is below

Code:
$free = unpack("x64L", $struct_psd);
print "pages:$pages free:$free\n";
$mb = ($psize / 1024) * $pages;
$mb = $mb / 1024;
if( $free == 0)
{
        print "hi";
}


code is printing value of free in

Code:
print "pages:$pages free:$free\n";

but it is not printing "hi" based on value of $free which is 0

o/p is

Code:
pages:0 free:0

# 4  
Old 08-31-2016
I wonder if it's ending up as a string or floating point for some reason. $free=int(....); may convert it to an integer which will play nicer with ==
# 5  
Old 09-02-2016
HI ,
I resolved the error , actually it required use of a different perl at the shebang line.
after changing the perl path its working

thanks all for your support.
This User Gave Thanks to Jcpratap For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

perl -Calling the Subroutine Only if the condition is met

Hello All, I am in the process of learning perl.I have a perl script and based on the arguments passed it would the appropriate subroutine that is defined in the script. Now, I need to check a value that is defined in the Environment variables and should call the subroutine only if the... (1 Reply)
Discussion started by: filter
1 Replies

2. Shell Programming and Scripting

Problem saving return value of subroutine in perl

Hi all, I have this code #This program read the triplets from file named "data" into #an array of array. use strict; use warnings; use Data::Dumper; use Graph; use Graph::Subgraph; my @S; while (<>) { push @S, ; } print "-----TRIPLETS-------\n"; print Dumper \@S; #Make... (6 Replies)
Discussion started by: rushadrena
6 Replies

3. Shell Programming and Scripting

perl - return an object from subroutine - Net::LDAP

Hi all, I'm not even sure a person can do this in perl, seems like you should be able to though. Here's the error IO::Socket::INET: connect: Operation now in progress at server_search.pl line 256, <DATA> line 466. Here's the perl code... sub ldap_new{ $nl = Net::LDAP->new( "$_" ) or... (3 Replies)
Discussion started by: jtollefson
3 Replies

4. Shell Programming and Scripting

Perl - pass file to subroutine

Hello All, I have 2 perl sub-routines. my $myDir = myDir_path; my $file; sub convert(){ system ("./$myConvertScript >> $myDir/$file_CONV" ); $file2 = $myDir/$file_CONV; } sub addDB(){ open(CONF, $config) or die "Cannot Open $config for reading. "; while(<CONF>){... (1 Reply)
Discussion started by: ad23
1 Replies

5. UNIX for Dummies Questions & Answers

For loop returning more values

Hi All, Thanks all of you for the help you provide to me. Well, I have one more problem, where I am trying to pull file system information in the loop and display the filesystem percentege. I am using following code to achive this, nut it's giving the weired output. My file system is ... (1 Reply)
Discussion started by: alok.behria
1 Replies

6. Programming

perl: Subroutine question

Hi everyone, I have given up finally trying to find a way to do this. I have a subroutine called LoginFirst where I am starting a new SSH session. I have bunch of subroutines, each one of them uses a (or I have to create a new SSH constructor everytime) ssh connection to get some value so ... (2 Replies)
Discussion started by: dummy_code
2 Replies

7. Shell Programming and Scripting

Calling perl subroutine from shell script (sh)

Hi, ive a perl script, where it has a subroutine clear() in it, and i've one shell script which runs in background, from that shell script i wanted to call subroutine which is in perl script, that's perl script is not module, just simple script. Eg: perl script <test> #!... (4 Replies)
Discussion started by: asarunkumar
4 Replies

8. Shell Programming and Scripting

Why Perl Subroutine Passed In Variable is 1?

The following subroutine prints 1 instead of the content of the Equipment variable. Can someone tell me why? #!c:/perl/bin/perl.exe # use strict 'vars'; my $Equipments = "data/equips.txt"; unless (open(EQUIP_FH, "$Equipments")) { print "errors: $Equipments\n"; # This line prints... (1 Reply)
Discussion started by: tqlam
1 Replies

9. Shell Programming and Scripting

calling perl subroutine from perl expect module

All, Is it possible to call a subroutine from the perl expect module after logging to a system that is within the same program. My situation is I need to run a logic inside a machine that I'm logging in using the expect module, the logic is also available in the same expect program. Thanks,... (5 Replies)
Discussion started by: arun_maffy
5 Replies

10. Shell Programming and Scripting

Help with a perl subroutine regex

Hi, I can't get this script ot work and I wa wondering if anyone could help? I need to open a file and use a subroutine to search each line for a regular expression. If it matches then I need to return a match from the subroutine and print the result? Any help would be greatly... (11 Replies)
Discussion started by: jmd2004
11 Replies
Login or Register to Ask a Question