09-07-2018
Quote:
Originally Posted by
indeed_1
Ps and args return correct value , but function (readconfig) does not return correct value!
Any idea?
First off: you do not provide your source code but only tiny (and may insignificant) morsels of it. You do not provide any output of the script but tell us only the absolute minimum of symptoms like "doesn't work" or "doesn't print". How are we supposed to debug your script on only rudimentary second-hand information?
And speaking about debugging: how about sitting down and put some debug statements into your code? At least you could show the same amount of effort you want to show us helping you in helping yourself!
Regarding your problem: i suppose the variables inside
readvar() are local to that function and therefore the values are not usable outside of it. A shell function will not "return" anything else than a return code (an unsigned short short it).
I hope this helps.
bakunin
9 More Discussions You Might Find Interesting
1. UNIX Desktop Questions & Answers
Hi,
How do i check the GNU C Complier my system is running?
thanks
jennifer (2 Replies)
Discussion started by: jennifer
2 Replies
2. UNIX for Dummies Questions & Answers
I have a process that spits out a file called sqlplus.out, here is what the result looks like:
Currently the value you see is zero, what I need to do is perform an action if that value is non-zero, so how do I check that value in an if statement? If it helps at this moment in development the... (6 Replies)
Discussion started by: philplasma
6 Replies
3. AIX
consider on day1, in PVCS repository we have java files like a.java,b.java with version revision 1.0, through ANT build script we have compiled and created an ear,named c.ear in AIX build server.we have transfered this ear from build server to portal server through FTP using KSHELL.
consider... (0 Replies)
Discussion started by: kareemaashik
0 Replies
4. Solaris
i have a program writing in PRO C which currently running in unix version 8 tie with oracle 8i, but in the future company gonna migrate this OS to version 9.
Anything i have to prepare for my PRO C program to run in unix version 9? or anything would that impact my program couldn't run well?
what... (2 Replies)
Discussion started by: lsy
2 Replies
5. UNIX for Advanced & Expert Users
Would like to confirm the ff. I got confused actually with the version I needed to download that will work on glassfish 3.0.1
a. Debian Squeeze (HP DL360). Need to use java version6
On Debian, I did apt-get install sun-java6-jdk. So when I check it's
java version "1.6.0_22"
Java(TM) SE... (1 Reply)
Discussion started by: lhareigh890
1 Replies
6. SCO
Hi, (i'm sorry for my english)
I'm a problem on boot sco unix 5.0.5 open server.
this stop at "Checking protected password and checking subsystem databases"
(See this image )
I'm try this:
1) http://www.digipedia.pl/usenet/thread/50/37093/#post37094
2) SCO: SCO Unix - Server hangs... (9 Replies)
Discussion started by: buji
9 Replies
7. Shell Programming and Scripting
How to copy a file from directroy/ prior version to the directory/ new version automatically. (4 Replies)
Discussion started by: roy1912
4 Replies
8. AIX
Hi,
Below is output of lslpp command.
bash-3.00# lslpp -L | grep xlC
xlC.aix50.rte 11.1.0.1 C F XL C/C++ Runtime for AIX 5.3
xlC.cpp 9.0.0.0 C F C for AIX Preprocessor
xlC.msg.en_US.cpp 9.0.0.0 C F C for AIX... (2 Replies)
Discussion started by: manoj.solaris
2 Replies
9. Red Hat
Guys,
How to find OS version and firmware version in LINUX?
Like in AIX.
uname -a will show me the version 5.3, 6.1,7.1.
lsmcode -c will show me - system firmware image as SF240_417.
What are the similar commands in Linux.
I checked uname -a and cat /etc/release.
uname... (1 Reply)
Discussion started by: ElizabethPJ
1 Replies
LEARN ABOUT MOJAVE
context::preserve5.18
Context::Preserve(3) User Contributed Perl Documentation Context::Preserve(3)
NAME
Context::Preserve - run code after a subroutine call, preserving the context the subroutine would have seen if it were the last statement
in the caller
SYNOPSIS
Have you ever written this?
my ($result, @result);
# run a sub in the correct context
if(!defined wantarray){
some::code();
}
elsif(wantarray){
@result = some::code();
}
else {
$result = some::code();
}
# do something after some::code
$_ += 42 for (@result, $result);
# finally return the correct value
if(!defined wantarray){
return;
}
elsif(wantarray){
return @result;
}
else {
return $result;
}
Now you can just write this instead:
use Context::Preserve;
return preserve_context { some::code() }
after => sub { $_ += 42 for @_ };
DESCRIPTION
Sometimes you need to call a function, get the results, act on the results, then return the result of the function. This is painful
because of contexts; the original function can behave different if it's called in void, scalar, or list context. You can ignore the
various cases and just pick one, but that's fragile. To do things right, you need to see which case you're being called in, and then call
the function in that context. This results in 3 code paths, which is a pain to type in (and maintain).
This module automates the process. You provide a coderef that is the "original function", and another coderef to run after the original
runs. You can modify the return value (aliased to @_) here, and do whatever else you need to do. "wantarray" is correct inside both
coderefs; in "after", though, the return value is ignored and the value "wantarray" returns is related to the context that the original
function was called in.
EXPORT
"preserve_context"
FUNCTIONS
preserve_context { original } [after|replace] => sub { after }
Invokes "original" in the same context as "preserve_context" was called in, save the results, runs "after" in the same context, then
returns the result of "original" (or "after" if "replace" is used).
If the second argument is "after", then you can modify @_ to affect the return value. "after"'s return value is ignored.
If the second argument is "replace", then modifying @_ doesn't do anything. The return value of "after" is returned from
"preserve_context" instead.
Run "preserve_context" like this:
sub whatever {
...
return preserve_context { orginal_function() }
after => sub { modify @_ };
}
or
sub whatever {
...
return preserve_context { orginal_function() }
replace => sub { return @new_return };
}
Note that there's no comma between the first block and the "after =>" part. This is how perl parses functions with the "(&@)" prototype.
The alternative is to say:
preserve_context(sub { original }, after => sub { after });
You can pick the one you like, but I think the first version is much prettier.
AUTHOR AND COPYRIGHT
Jonathan Rockway "<jrockway@cpan.org>"
Copyright (c) 2008 Infinity Interactive. You may redistribute this module under the same terms as Perl itself.
perl v5.18.2 2008-01-15 Context::Preserve(3)