On 2/26/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
Thank you both. I am trying to find out why "!~" operator fails. It is due to the
whitespaces. but I am using "six" to ignore spaces.
It has nothing to do with whitespaces. As Tom said:
On 2/26/07, Tom Phoenix <[EMAIL PROTECTED]> wrote:
> if ($result !~ /$rdns/ix) {
That's checking whether $rdns, as a pattern, does not match the string
in $result. (Was that supposed to be $result1?) But I think you're
asking for this, maybe:
To check that $result1 is not a part of $rdns, you must say
$rdns !~ /\Q$result1\E/ix
# which reads as:
# this string does not match the literal content
of $result1
If you exchange the pieces, it will always fail to find that the
smaller $result1 has a large piece $rdns within it.
Sorry guys. Below is the actual code. I made the changes that A.R. Ferreira
suggested and it fails.
use strict;
use warnings;
my $rdns="cn=Exchange Sites,cn=Proxy Views,cn=JoinEngine Configuration,ou=Conf,o
u=InJoin,ou=applications,dc=marriott,dc=com";
my $result="cn=Exchange Sites";
if ($result !~ /\Q$rdns\E/six) {
print "\nresult: '$result'";
print "\nrdn: '$rdns'\n";
} else {
print "String is there\n";
}
OUTPUT is:
$ ./test.pl
result: 'cn=Exchange Sites'
rdn: 'cn=Exchange Sites,cn=Proxy Views,cn=JoinEngine
Configuration,ou=Conf,ou=InJoin,ou=applications,dc=marriott,dc=com'
Tom your code works fine. But I was tring to understand why "!~" fails above.
use strict;
use warnings;
my $rdns="cn=Exchange Sites,cn=Proxy Views,cn=JoinEngine Configuration,ou=Conf,o
u=InJoin,ou=applications,dc=marriott,dc=com";
my $result="cn=Exchange Sites";
if ($result !~ /\Q$rdns\E/six) {
print "\nresult: '$result'";
print "\nrdn: '$rdns'\n";
} else {
print "String is there\n";
}
OUTPUT is:
String is there
-----Original Message-----
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Cc: [email protected]
Sent: Mon, 26 Feb 2007 12:29 PM
Subject: Re: BInding operator fails
On 2/26/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> Hi. I have a problem with the below code. I have two strings, $rdns and
$result1.
> I want to make sure $result 1 is NOT part of $rdns. But the below fails...thus
> instead of printing the else part of the if-else-loop. It print the main
part. Does
> anyone know what coudl cause this.
> if ($result !~ /$rdns/ix) {
That's checking whether $rdns, as a pattern, does not match the string
in $result. (Was that supposed to be $result1?) But I think you're
asking for this, maybe:
if (index($rdns, $result) == -1) {
print "\$result isn't part of \$rdns.\n";
}
The index function is covered in perlfunc. Hope this helps!
--Tom Phoenix
Stonehenge Perl Training
-- To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/
________________________________________________________________________
Check out the new AOL. Most comprehensive set of free safety and security
tools, free access to millions of high-quality videos from across the web, free
AOL Mail and more.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/