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


in reply to Re^4: Problem with ampersand and regex
in thread Problem with ampersand and regex

Add the following to your script:

use Data::Dumper;

...and then on the line immediately preceding your "for" loop, add, "print Dumper \@array;".

There might be something broken in your input data, and that would be a simple means of identifying (or eliminating) it as a problem.


Dave

Replies are listed 'Best First'.
Re^6: Problem with ampersand and regex
by Anonymous Monk on Dec 19, 2012 at 22:01 UTC
    Done and here is a sample of what I got back:
    ', 'sn: ThisUser ', 'mail: ThisUser@somewhere.com ', 'cn: This User ', 'uid: MyUID
    Now what?

      Well, that does tell us that you're not chomping the input, which you should be doing. chomp @array; would take care of that problem. What it doesn't show me is how the following would fail:

      my @array = ( 'sn ThisUser', 'mail: ThisUser@somewhere.com', 'cn: This User', 'uid: MyUID', ); foreach my $line ( @array ) { if( $line =~ m/^mail:\s+([\S]+)/ ) { print "$1\n"; } }

      It doesn't fail on my system, which leads me to believe that the problem is in a portion of your code that we're not seeing, or in your data-set. If your data-set looks clean, we're back to the portion of the code that we haven't been shown.


      Dave

        Thank you for your time Dave in going to this much effort to help a total stranger. Not sure exactly what fixed it, but I used the chomp as recommended and then copied/pasted your code and that seems to have solved the issue.

        Thanks again and have a great Christmas!