in reply to split string by comma
Using a module as GrandFather suggests is probably the safest option. However, just to show another way with this particular data, you could use the third argument to split in order to work in from either end.
knoppix@Microknoppix:~$ perl -E ' > $_fileline = q{1945,"4,399.00",938,1/10/2012}; > ( $_fileparts[ 0 ], $remainder ) = split m{,}, $_fileline, 2; > push @_fileparts, > reverse > map scalar reverse, > split m{,}, reverse( $remainder ), 3; > say for @_fileparts;' 1945 "4,399.00" 938 1/10/2012 knoppix@Microknoppix:~$
I hope this is of interest.
Update: Assigning to an array slice avoids the final reverse.
knoppix@Microknoppix:~$ perl -E ' > $_fileline = q{1945,"4,399.00",938,1/10/2012}; > ( $_fileparts[ 0 ], $remainder ) = split m{,}, $_fileline, 2; > @_fileparts[ 3, 2, 1 ] = > map scalar reverse, > split m{,}, reverse( $remainder ), 3; > say for @_fileparts;' 1945 "4,399.00" 938 1/10/2012 knoppix@Microknoppix:~$
Cheers,
JohnGG
In Section
Seekers of Perl Wisdom