Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: Checking Wrong Condition

by 2teez (Priest)
on Apr 25, 2012 at 09:15 UTC ( #967025=note: print w/ replies, xml ) Need Help??


in reply to Checking Wrong Condition

The regex you used are not matching, are your if statements in a subroutine? If not why use a 'return'
However, the code below could guide you:

use warnings; use strict; die "Enter proper CLI arugments: ......." unless @ARGV == 2; ## check your arguments passed from CLI my ( $num1, $num2 ) = show_now(@ARGV); print $num1, "\t", $num2, $/; sub show_now { my ( $inp1, $inp2 ) = @_; print "inp1 is $inp1 inp2 is $inp2\n"; my ( $opt1, $value1, $opt2, $value2 ) = ""; if ( $inp1 =~ /rel=.+?/i ) { ## changed the regex ( $opt1, $value1 ) = split( /=/, $inp1 ); } if ( $inp2 =~ /file=.?+/i ) { ## changed the regex ( $opt2, $value2 ) = split( /=/, $inp2 ); } if ( $inp1 !~ /rel=.+?/i or $inp2 !~ /file=.+?/i ) { print "\n[Error] - Wrongly passed the parameter.\n"; print " Please use correct format as below\n"; print "\n[Example] - <scriptname> rel=<release> file=<file_name>(\$script_na +me rel=102b file= ccmsg.1)\n\n"; #exit; ## not really needed } return ( $value1, $value2 ) if wantarray(); }

Hope this helps


Comment on Re: Checking Wrong Condition
Download Code
Re^2: Checking Wrong Condition
by Divakar (Sexton) on Apr 25, 2012 at 17:30 UTC

    thanks for the response.

    yes. i am using the if condition in my subroutine. can you please explain more about wantarray. i read in perldoc. but couldnt understand much as how it will work here..

      Subroutine can return both scalar and list context values, so return a list context values as in our case here. One can use wantarray() to tell which context as stated in the perldoc -f wantarray documentation, and I quote "Returns true if the context of the currently executing subroutine or "eval" is looking for a list value. Returns false if the context is looking for a scalar. Returns the undefined value if the context is looking for no value (void context)."

      E.g:

      my @values=get_values(); # subroutine called print @values; ## print 12345 not 1,2,3,4,5 sub get_values{ my @init_val=grep $_=>1..5; if(wantarray){ # test list context return @init_val; }else{return join",",split} }

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://967025]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (10)
As of 2015-07-07 15:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (90 votes), past polls