David Mamanakis wrote:
>
> sub validateCLSMSResponse
> {
> my $self = shift;
> my $Response = undef;
> my $CheckString = shift;
> my @Holder = shift;
the above could be bad. you only shift one element from @Junk into @Holder.
If you have:
@Junk = ('hi','hello','whatever','another');
$TE->validateCLSMSresponse('whatever',@Junk);
@Holder will have only one element: 'hi'
you probably mean:
@Holder = @_;
> $Response = grep { /$CheckString/i } @Holder;
grep returns an array with all elements matching the reg. exp. you supply or
() if nothing matches. you are using it in a scalar context which is fine
for a boolean value such as when you use $Response in the 'if' statment.
just make sure you don't really mean:
@Response = grep { /$CheckString/i } @Holder;
>
> The problem I am having is that sometimes the information in the array may
> get truncated to 8 character slices. This is expected.
> The information I am trying to compare to may be longer, so this fails. I
could the fail related to the above?
> need to truncate $CheckString to 8 characters (the first 8 characters) or
> only compare the first 8 characters of $CheckString to the contents of
> @Holder.
>
to turncate a string to the first 8 characters:
substr($string,8) = '';
to compare just the first 8 characters:
if(substr($string,0,8) eq 'whatever'){
print "match\n";
}else{
print "not match\n";
}
or:
if(unpack('A8',$string) eq 'whatever'){
print "match\n";
}else{
print "not match\n";
}
the unpack() function could prove to be a bit faster.
david
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]