Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

Re^3: converting rows into column

by shmem (Chancellor)
on Jul 18, 2010 at 15:01 UTC ( [id://850161] : note . print w/replies, xml ) Need Help??

in reply to Re^2: converting rows into column
in thread converting rows into column

I downvoted your post since you obviously did not read the links biohisham gave you.

Had you done so, you would surely have formatted your second post with <p></p> and <code></code> tags:

thanx so much for ur advice... actually am a new in perl monk...
actually i want to make a database of mp3 songs. so after retrieving the tag info of each song..i got a output like :

Artist: Rock Title: Fusion Album: Fusion Year: 2002 Genre: Other Artist: MelB Title: who am i: Album: donny Year: 2004 Genre: Other Artist: bon jo Title: i can stay Album : Armyman Year: 2009 Genre: Other Artist: Pearl Title: Last Album: Jam Year: 1983 Genre: Other

now i want my database to be like :

Artist Title Album Year Genre ------ ----- ----- ----- ----- Rock bbb hhh 2000 POP MelB Hum por 2003 other bon jo Armyman 209 others


#!/usr/bin/perl use warnings; use strict; my %hasharray; open (my $fh, "<", "C:/songdata1.txt") or die "can't open the file"; while (<$fh>){ my ($header,$info) = split /:/; }

I dont know how to proceed futher.
plz help me out.

Now, to help you out:

  • make sure your records are separated with an empty line
  • read the input file in paragraph mode (switch -p00, see perlrun)
  • split the resulting records at "\n"(newline) into an array
  • iterate over this array, split each element into ($header,$info)
  • populate a hash (see perldata) with $header as key, $info as value
  • done iterating over the array, output the records (see perlform for formatted text output)