Hi there, I got a wired bug with the following perl script:
35 # return non-negative value if particular character is in string array 36 # otherwise, return -1 sub is_in_string { 38 # @s: string array, $c: character 39 # passing array into sub 40 my @s = @_[0]; my $c = $_[1]; 41 for my $i (@s) { if ($c eq $i) {return 1} } 42 return -1; 43 } 44 my @ar = qw(t d s); 45 my $c = "d"; 46 my $res = &is_in_string( @ar, $c); 47 print $res; I would expect the result to be 1, but whenever the $c changes, this subroutine always return -1. Can anyone help me out of this? Btw, is there any way to search one character against sliced string? I can only think of one way as following: 1. convert string to array with "split" function 2. search one character against sliced array e.g. array[2..$#array] However, if I want to do the above task multiple times, meaning I've to convert string into array every time, pain in the ass... --- Regards ! Alex Chiang