On Sat, Feb 7, 2009 at 08:45, Soham Das <soham...@yahoo.co.in> wrote:
> Hi All,
>
> I am a noob in Perl and hence would like some help to what I am sure is a 
> very easy problem.
>
> I have got a text  file in csv format
> The format is:
> <TICKER>,<DATE>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOLUME>,<OI>
>
> Now my objective is to change the format of the date, and rename the whole 
> file as a .csv
>
> So, my strategy is:
> I want to read the content between the first and second comma, take it in a 
> variable and do the slicing and dicing and write it back.
>
> Because I need some real life practice in REGEX, how do you suggest I read 
> the contents between the first and the second comma?
snip

This isn't a job for a regex; it is a job for split:

my @record = split ",", $record;
$record[1] =~ s{(..)/(..)/(....)}{$3$1$2}
    or die "line $. has an invalid date format";
print join ",", @record;

You could say

$record =~ s{(.*?),(..)/(..)/(....),}{$1,$4$2$3,}
    or die "line $. has an invalid date format";
print $record;

but the next person to maintain your code may be a little upset at
you, especially in the more complicated versions of this type of
substitution.

-- 
Chas. Owens
wonkden.net
The most important skill a programmer can have is the ability to read.

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to