my @msg = <DATA>; my $msg = join("", @msg); my $f = _extractInfoFromMsg($msg); my %f = %$f; print 'NEW TICKET NUMBER: ' . $f{TICKET_NUMBER} . "\n"; print 'OLD TICKET NUMBER: ' . $f{OLD_TICKET_NUMBER} . "\n"; print ' MESSAGE TYPE: ' . $f{MESSAGE_TYPE} . "\n"; print ' LEAD TIME: ' . $f{LEAD_TIME} . "\n"; sub _extractInfoFromMsg { $_ = shift; my %fields; $_ =~ /TICKET NUMBER-+\[(.*?)\]/; $fields{TICKET_NUMBER} = $1; $_ =~ /OLD TICKET NUMBER-+\[(.*?)\]/; $fields{OLD_TICKET_NUMBER} = $1; $_ =~ /MESSAGE TYPE-+\[(.*?)\]\s+LEAD TIME-+\[(.*?)\]/; $fields{MESSAGE_TYPE} = $1; $fields{LEAD_TIME} = $2; return \%fields; } __DATA__ TICKET NUMBER--[051580160] OLD TICKET NUM-[051540724] MESSAGE TYPE---[NORMAL] LEAD TIME--[72] PREPARED-------[06/07/05]
produces
D:\user\punkish>test.pl NEW TICKET NUMBER: 051580160 OLD TICKET NUMBER: 051580160 MESSAGE TYPE: NORMAL LEAD TIME: 72
instead of
NEW TICKET NUMBER: 051580160 OLD TICKET NUMBER: 051540724 MESSAGE TYPE: NORMAL LEAD TIME: 72
What is the obvious stupid thing that I am doing here? That is, why is the OLD TICKET NUMBER not correct?
In reply to Regexp matching blues by punkish
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |