John W. Krahn wrote: > Ed wrote: >>How would I get the various elements out of a string of known format. >>A previous post about a similar topic approaches a solution but I need >>help with the regular expression to pass to the m function. >> >>Here's an example of a string: >>net user cknotts somepassword /add /active:yes /expires:never >>/comment:"Some Comment" /fullname:"Cindy Knottsagain" >> >>The code would look something like this, except the regex in the m{} >>function needs work: >> >>while (my $line = <F>) >>{ >> if( my( $UserName, $passwd, $Comment, $FullName ) = ( $line =~ >>m{^\s*net\+user\s+(\S+)\s+(\S+)\s*} ) ) >> { >> print $UserName, $passwd, $Comment, $FullName; >> } >> >>} > > Something like this (UNTESTED): > > while ( my $line = <F> ) { > > if ( $line =~ /^\s*net\s+user\s+(\S+)\s+(\S+)/ ) { > my ( $UserName, $passwd ) = ( $1, $2 ); > my $Comment = $line =~ m!/comment:"([^"]+)!; > my $FullName = $line =~ m!/fullname:"([^"]+)!;
Sorry, I forgot to use list context. my ( $Comment ) = $line =~ m!/comment:"([^"]+)!; my ( $FullName ) = $line =~ m!/fullname:"([^"]+)!; > print $UserName, $passwd, $Comment, $FullName; > } > } John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>