On Friday, September 27, 2002, at 12:50 am, Georgia Citizen wrote:
> I have a variable that contains multiple lines, each ending with a
> line-feed.
>
> I want to create an array that contains one line per each line of text
> contained in a variable.
As you don't say i don't know what your original data looks like but
there's one thing to remember when dealing with docs from the web -'\n'
is not the same for different OS:
Unix systems (Unix, Linux, OSX) '\n' = ASCII '\012' ('\f' line feed).
MacOS9 and earlier '\n' = ASCII '\015' ('\r'
carriage return).
MS-DOS,Windows systems '\n' = ASCII '\012\015' ('\f\r' line
feed + carriage return).
So if you're processing files which come from a Unix system, or
Windows, unless you make sure the data has the correct endings first
MacPerl won't be able to use the method below:
[1] $data=~tr/\012/\015/; # change Unix line endings to Mac ones
or
[1] $data=~tr/\012//; # change Dos/Win line endings to
Mac ones
[2] $data='Tony\nJeff\nJimmy\nTammy\n';
[3] @array=split(/\n/,$data); #split the data on on each \n
but you could also do this:
$data='Tony\n,Jeff\n,Jimmy\n,Tammy\n';
($Tony,$Jeff,$Jimmy,$Tammy ) =split(/\n/,$data);
Arrays are good for gathering data in one structure, especially if
you're going to process the data later. Variables are good because you
can give them meaningful names so:
$data='Tony\n,Jeff\n,Jimmy\n,Tammy\n';
@array=split(/\n/,$data);
print $array[0],"\n";
and
$data='Tony\n,Jeff\n,Jimmy\n,Tammy\n';
($Tony,$Jeff,$Jimmy,$Tammy ) =split(/\n/,$data);
print $Tony,"\n";
do the same thing, it depends what you want to do next.
HTH
Robin