Sorry,I can't  understand for this RE too.John explain that pls.

2005/11/17, S, karthik (IE03x) <[EMAIL PROTECTED]>:
> John and Jeff,
>
> Could you please explain the RE used.
>
> /^User:\s*(.+?)$(?=.*=([^[]+)\[)/sm;
>
> I understood that it looks for 'User:\s'. Then I am not able to figure
> out the meaning of the remaining part of RE.
>
>
> With Best Regards,
>
> Karthikeyan S
>
>
>
> -----Original Message-----
> From: Jeff Pang [mailto:[EMAIL PROTECTED]
> Sent: Thursday, November 17, 2005 2:06 PM
> To: John W. Krahn
> Cc: Perl Beginners
> Subject: Re: How to get this hash?
>
> Thanks for John.I have tested it,it is good for me.
>
> 2005/11/17, John W. Krahn <[EMAIL PROTECTED]>:
> > Jeff Pang wrote:
> > > Hi,lists,
> >
> > Hello,
> >
> > > I have a file that look as:
> > >
> > > --
> > > User: honorhr40
> > > Got data from YY23 (md1=23,md2=24):
> > > [0] xxxx=46[I:0 T:Int]
> > > [1] pd=[I:0 T:Str]
> > > [2] cosnm=normal[I:0 T:Str]
> > > --
> > > User: lulu-918
> > > Got data from YY18 (md1=18,md2=19):
> > > [0] xxxx=69[I:0 T:Int]
> > > [1] pd=back.zzz.com[I:0 T:Str]
> > > [2] cosnm=normal[I:0 T:Str]
> > >
> > > ......
> > >
> > > and thousands of these lines.
> > >
> > > I want to get the No.1 line and No.5 line,just as:
> > >
> > > User: honorhr40
> > > [2] cosnm=normal[I:0 T:Str]
> > >
> > > and put the two lines into a hash,as:
> > >
> > > $hash{'honorhr40'} = 'normal';
> > >
> > > I have no ideas on doing this work.Can you anyone give me some
> help?thanks.
> >
> > This appears to do what you want:
> >
> > #!/usr/bin/perl
> > use warnings;
> > use strict;
> > use Data::Dumper;
> >
> > $/ = "--\n";
> >
> > my %hash;
> >
> > while ( <DATA> ) {
> >
> >    next unless /^User:\s*(.+?)$(?=.*=([^[]+)\[)/sm;
> >
> >    $hash{ $1 } = $2
> >    }
> >
> > print Dumper \%hash;
> >
> > __DATA__
> >
> > --
> > User: honorhr40
> > Got data from YY23 (md1=23,md2=24):
> > [0] xxxx=46[I:0 T:Int]
> > [1] pd=[I:0 T:Str]
> > [2] cosnm=normal[I:0 T:Str]
> > --
> > User: lulu-918
> > Got data from YY18 (md1=18,md2=19):
> > [0] xxxx=69[I:0 T:Int]
> > [1] pd=back.zzz.com[I:0 T:Str]
> > [2] cosnm=normal[I:0 T:Str]
> >
> >
> >
> > 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>
> >
> >
> >
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> <http://learn.perl.org/> <http://learn.perl.org/first-response>
>
>
>

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to