Not quite. Consider (note I've trimmed the number of trailing spaces and retained the line ends (but strip them):
use strict;
use warnings;
use Date::EzDate;
my $str = <<DATA;
Security : BULGY N V-
Item Overridden : Earnings Per Share
Initial Value : (USD)
Current Value : ()
Overridden Value : 160 (USD)
Effective : 08/20/1999 through 08/20/2000
Override Type : Data
SecurityID : 1076665
Sedol : 2451234
Cusip : N66696606
ISIN : NL0006122988
DATA
$str =~ s/\n//g;
while ($str =~ /(.*?):\s(.*?)\s\s/g) {
my ($key, $value) = ($1, $2);
$key =~ s/^\s*//;
$key =~ s/\s*$//;
$value =~ s/^\s*//;
$value =~ s/\s*$//;
print ">$key: $value<\n";
}
Prints:
>Security: BULGY N V-<
>Item Overridden: Earnings Per Share<
>Initial Value: (USD)<
>Current Value: ()<
>Overridden Value: 160 (USD)<
>Effective: 08/20/1999 through 08/20/2000<
>Override Type: Data SecurityID<
>: 1076665 Sedol<
>: 2451234 Cusip<
>: N66696606 ISIN<
>: NL0006122988<
The regex /(\w[\w ]{17}):\s+((?:(?!\w[\w ]{17}:).)*)/g latches on to a 18 character wide label preceeding a : and then grabs characters upto the next label field. The result is:
>Security: BULGY N V-<
>Item Overridden: Earnings Per Share<
>Initial Value: (USD)<
>Current Value: ()<
>Overridden Value: 160 (USD)<
>Effective: 08/20/1999 through 08/20/2000<
>Override Type: Data<
>SecurityID: 1076665<
>Sedol: 2451234<
>Cusip: N66696606<
>ISIN: NL0006122988<
DWIM is Perl's answer to Gödel
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|