http://www.perlmonks.org?node_id=1064395


in reply to Substr Perl

If I understand you correctly, you want to extract the "CN" term from the record string. Here is a somewhat brute-force approach but I think it demonstrates the principle you need to see.

# assuming you have a record string in $record and the field order is # always the same. my @fields = split(/\,/, $record); my $group = $fields[0]; # do this if you need to strip the "CN=" from the field $group =~ s/^CN=//; print $group . "\n";

Given this and your prior question about storing multiple values in a single DB column, I think you should read up on Perl regex, split and join as well as other basic text processing functions. Perl excels at this kind of work, but you need to know what tools you have available.

It helps to remember that the primary goal is to drain the swamp even when you are hip-deep in alligators.

Replies are listed 'Best First'.
Re^2: Substr Perl
by mba777 (Novice) on Nov 26, 2013 at 12:35 UTC
    sorry for my stupid questions but i'm actually no programmer ;), For example i have something like that:
    my @member = $entry->get_value ('memberOf'); my @memberof = grep(/\CN=ext\.Group\.([^,]+)/,@member); $member = join(',',@memberof); print "$uid -- $member\n";
    This code gives me the following output: Michael Douglas -- CN=ext.Group.eso,OU=External,OU=ExDistriGroups,OU=Accounts,DC=eso,DC=local,CN=ext.Group.test,OU=External,OU=ExDistriGroups,OU=Accounts,DC=eso,DC=local,CN=ext.Group.test1,OU=External,OU=ExDistriGroups,OU=Accounts,DC=eso,DC=local,CN=ext.Group.test2,OU=External,OU=ExDistriGroups,OU=Accounts,DC=eso,DC=local What i want is: Michael Douglas -- eso, test, test1, test2 Thanks Andy
      map instead of grep was the solution for me, thank you hdb !! Tanks to all ;)