in reply to Re^5: Question on the format statement
in thread Question on the format statement

"Some of the fields are left undefined": These are the col headers-

Consumer name Subdivision Cheque no. Receipt no. Amount

And this a sample row of data-

M/s. Something Pvt. Ltd.!Elm Street!134!27456.00

The field left undefined in this row of data is the cheque number(for cash payments)

If some column data is missing in this way the output report I get is all jumbled up. In the format statements I've just assigned the possible max no of characters for each field.But the data tends to vary in length for ex. the consumer name could be:
@<<<<<<<<<<<<<<<<<<<<<<< M/s. Something Pvt. Ltd Somethin&Someone Something-Something Someone
The names are of different lengths and none are as long as the max defined no. of characters.
The same could happen for other fields. In such a situation is it possible to get the column headers and data below to match, like in a tabular format?
Expected output:
Col1 Col2 Col3 Col4 Someone 26354 151 27364.00 M/s Something 152 234.00 Mr. xxx 36454 153 4856679.00 Mr.yy 154 3645.00 Mr.Z 2675 155 23459.00

Replies are listed 'Best First'.
Re^7: Question on the format statement
by roboticus (Chancellor) on Apr 07, 2010 at 18:12 UTC

    perl seeker:

    Oh, I see what you're asking now. For a delimited file, you usually don't leave out the delimiters. In other words, I wouldn't expect to see this:

    M/s. Something Pvt. Ltd.!Elm Street!134!27456.00

    Rather, I would expect to see (notice the extra !):

    M/s. Something Pvt. Ltd.!Elm Street!!134!27456.00

    In this version, you get the correct number of fields, with a blank cheque number. If the format is under your control, I'd suggest always having the correct number of delimiters. Otherwise you won't be able to reliably tell the difference between the fields--how would you determine it was the cheque number that was missing rather than the receipt number?

    ...roboticus