Just for the sake of TIMTOWTDI, here is an alternative approach that you could take to this task.
#!/usr/bin/perl -w use strict; chomp(my @lines = <DATA>); my %results; for my $line (@lines) { if (my ($field, $data) = $line =~ m/^(\w+).+?(<.+?>)$/) { $results{$field} = $data; } } for my $field (keys %results) { print "$field is $results{$field}\n"; } __DATA__ To:sanju <sip:san@36.212.176.07> From: paka<sip:sam@36.212.176.92> Contact: sanjay<sip:san@36.212.176.07:5060>
Which prints..
Contact is <sip:san@36.212.176.07:5060> To is <sip:san@36.212.176.07> From is <sip:sam@36.212.176.92>

The advantage of an approach such as this is that you do away with your if/else conditionals, so it becomes more scalable. For example, if you suddenly had to extract 100 sets of data instead of three, you wouldn't need to alter the code at all. But using your original approach, you'd need to add a separate conditional statement for each of the 100 possibilities.

Explaining the pattern match in that code...

($field, $data) = $line =~ m/^(\w+).+?(<.+?>)$/

The anchors (^ and $) are probably not completely necessary in this case, however it's a good habit to anchor your pattern matches where ever possible, as it speeds things up.

Hope this helps,
Darren :)


In reply to Re: How to retrieve the string after the space??? by McDarren
in thread How to retrieve the string after the space??? by sam_0056

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.