Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
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 about the Monastery: (4)
As of 2014-09-24 03:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (244 votes), past polls