I have a perl script xyz.pl:-
#!perl -w use strict; my $param = shift; eval print $param; sub egal () { my $result; my @arg = @_; $test = $arg[0]; @test = grep (/$test/i, @arg); print "++++"; if ($#test == $#arg) { $result = true; } else { $result = false; } return $result; }
Now I am calling the script :-
perl xyz.pl 'egal("20090316","7006")'
I want the script to eval the parameter and return me the result. The output should be like:
"++++false"
But it is not returning me any result. On the other hand if I set a variable to the value whatever I am passing through parameter and then pass the variable to eval, it is giving the desired output
#!perl -w use strict; #my $param = shift; my $param = egal("7006","7006"); eval print $param; sub egal () { my $result; my @arg = @_; my $test = $arg[0]; my @test = grep (/$test/i, @arg); print "++++"; if ($#test == $#arg) { $result = "true"; } else { $result = "false"; } return $result; }
Now I am calling the script :-
perl xyz.pl
Output :
++++true
So now how do I make the first piece of code work... so that I can make the sub program call dynamic??
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |