Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
FixedLength(3)	      User Contributed Perl Documentation	FixedLength(3)

       Text::FixedLength - Parse and create fixed length field records

	 use Text::FixedLength;

	 # -- get fixed	length records from delimited text
	 my @fL	= qw(4L	4L 4L 4L); # --	left justified (which is default)
	 my @fR	= qw(4R	4R 4R 4R); # --	right justified	(not default)
	 my $str= join "\t", qw(1 2 3 4);
	 my @a1	= delim2fixed([	$str ],"\t", \@fL);
	 my @a2	= delim2fixed([	$str ],"\t", \@fR);
	 # -- $a1[0] would now hold: '1	  2   3	  4   '
	 # -- $a2[0] would now hold: '	 1   2	 3   4'

	 # -- get delimited text from fixed length
	 my @a1	= fixed2delim([	'2233344441' ],	[qw(2 3	4 1)], ':');
	 # -- $a1[0] would now hold: 22:333:4444:1

       Text::FixedLength was made to be	able to	manipulate fixed length	field
       records.	You can	manipulate arrays of data, or files of data.  This
       module allows you to change between delimited and fixed length records.

       E.g. DELIM (with	':' as the delim) aaa:bbb:ccccc:dddddd
	    FIXED 'dion	   almaer   mn55446'
		  where	the format is left justified: 8	9 2 5 (SEE FORMATS)

	 You need to be	familiar with the format array references used
	 to create, and	parse fixed length fields.
	 The array reference holds the length of the field, and	optionally
	 holds either 'L' for left justified, or 'R' for right justified.
	 By default fields are left justified (but you can change this
	 default via the setJustify(L || R) functino)

	 For example if	you had	the following fixed length record:

	 1234567890123456789012345 <- place holder
	 dion	 almaer	   mn55446

	 The format (if	all left justified) would be:
	 $format = [ 8,	10, 2, 5 ];

       o delim2fixed($filename | $dataAREF, $delim,

	 delim2fixed returns fixed length field	records	from delimited records

	 1: Filename or	an array reference holding delimited strings
	 2: Delimiter for the data in arg 1
	 3: Format array reference of the fixed	lengths	(see FORMATS)
	 4: [OPTIONAL] Filename	to write the fixed length data too

	 RETURNS: Depending on wantarray it will return	either an array	of
		  fixed	length records,	an array reference, or nothing
	 e.g. @array = delim2fixed('file',':',[	qw(2 2 4 10) ]);
	      $scalar =	delim2fixed([ 'foo:bar:whee' ],':',[ qw(5 5 5) ]);
	      delim2fixed('file',"\t",[	qw(6 10	4 1) ],	'outputfile');

       o fixed2delim($filename | $dataAREF, $formatAREF, $delim,

	 fixed2delim returns delimited records from fixed length records

	 1. Filename or	an array reference holding fixed length	records
	 2. Format array reference for the data	in arg 1
	 3. Delimiter for the output data
	 4: [OPTIONAL] Filename	to write the delimited data too

	 RETURNS: Depending on wantarray it will return	either an array	of
		  delimited records, an	array reference, or nothing
	 e.g. @array = fixed2delim('file',[ qw(2 2 4 10) ],':');
	      $scalar =	fixed2delim([ 'foo   bar whee' ],':',[ qw(6 4 4) ]);
	      fixed2delim('file',[ qw(6	10 4 1)	],"\t",'outputfile');

	 NOTE: The resulting strings are cleaned of whitespace at the
	       beginning and the end. So '  foo	 ' becomes 'foo'
	       You do not need to worry	about the justification	of the
	       text as the whitespace is cleaned

       o setJustify($justchar) [either 'L' or 'R'] [default: L]

	 setJustify sets the default justification (originally set to left).

	 ARGUMENTS: either L for left justified, or R for right	justified

       o setCrop($bool)	[either	1 or 0]	[default: 1]

	 setCrop sets whether records should be	cropped	to the size of the format
	 or not.

	 For example if	you have a string 'whee' that is meant to be fit into
	 a fixed format	of 2 then if setCrop is	true the record	will be	changed
	 to 'wh' to constrain it

perl v5.24.1			  1998-11-18			FixedLength(3)


Want to link to this manual page? Use this URL:

home | help