Another hint is use the following, which I think is more readable :-)
my $dn = 'corpid=xxxxxx,ou=people,o=corp';
my ($ou) = $dn =~ /ou=(.*?),/;
print "ou = $ou\n";
From perldoc perlre:
Sometimes minimal matching can help a lot. Imagine you’d like
+to match
everything between "foo" and "bar". Initially, you write somet
+hing
like this:
$_ = "The food is under the bar in the barn.";
if ( /foo(.*)bar/ ) {
print "got <$1>\n";
}
Which perhaps unexpectedly yields:
got <d is under the bar in the >
That’s because ".*" was greedy, so you get everything between t
+he first
"foo" and the last "bar". Here it’s more effective to use mini
+mal
matching to make sure you get the text between a "foo" and the
+first
"bar" thereafter.
if ( /foo(.*?)bar/ ) { print "got <$1>\n" }
got <d is under the >
Igor 'izut' Sutton
your code, your rules.