Kevin Old wrote:
> 
> Hello all,

Hello,

> I have run into a situation that I've never faced before.  I've always
> parsed delimited (comma, pipe, etc) data.  Now I'm faced with parsing
> fixed-width data.  That's fine and I understand how to do it and have
> even found a module for it (Parse::FixedLength).

You would usually use unpack() for this.

> Say I have the following string and the first 10 characters are the
> first name, the second 10 are the last name and the next 7 are the
> price.
> 
>      Kevin        Old001.000
  1234567890123456789012345678

Usually, text fields in fixed length format are left justified.

> I understand that with the name fields I can just strip off the \s
> characters and then I have my first name, but what about the price?
> Some times it could be like 1000.00 or 0100.00....but with the preceding
> zeros it makes it confusing.  Do I need to explicitly strip off the
> preceding zeros?

No.

> Any help on dealing with fixed width data is appreciated,

my $record = '     Kevin       Old001.000';

my ( $first, $last, $price ) = unpack 'A10 A10 A7', $record;

# If the fields are right justified then:
my ( $first, $last, $price ) = map { s/^\s+//; $_ } unpack 'A10 A10 A7', $record;


Note that the 'A' format to unpack will automatically strip trailing whitespace.



John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to