John W. Krahn a écrit :
sfantar wrote:
Hello everyone

Hello,

I would like to be able to print the songs'titles according to the author.
The format of the songs are as follow :

Freda Payne - In motion.mp3
Sylvester - Was it something that i said.mp3
George Benson & A. Franklin - Love All The Hurt Away.mp3



#!/usr/local/bin/perl -w

use strict;
use warnings;

my @author;
my @title;
my $song;
my $i;
my $j;

# @ARGV -> *.mp3

foreach $i (@ARGV) {
        $i =~ s/ /_/g;
#       print $i."\n";
        @song = split (/-/, $i);

You should have gotten an error because @song is not declared.


}

The first time through the loop $i is assigned the string:
'Freda Payne - In motion.mp3'
The substitution operator converts that to:
'Freda_Payne_-_In_motion.mp3'
And then after the split() @song contains:
( 'Freda_Payne_', '_In_motion.mp3' )
The loop iterates through each file name in turn until finally $i is assigned:
'George Benson & A. Franklin - Love All The Hurt Away.mp3'
Then after the substitution and split @song contains:
( 'George_Benson_&_A._Franklin_', '_Love_All_The_Hurt_Away.mp3' )


foreach $j (@song) {

At this point @song will contain the author and title from the last entry in
@ARGV.

        if ($j =~ /^_.*.mp3$/) {
                print $j."\n";
        }
}


NB :  I haven't used the array @author yet because I don't know how I
can get the author from the song with the split function.

#!/usr/local/bin/perl
use strict;
use warnings;

my @authors;
my @titles;


for my $file ( @ARGV ) {
    $file =~ tr/ /_/;

    my ( $author, $title ) = split /-/, $file;

    push @authors, $author;
    push @titles, $title;
    }

__END__



John

Thank for your explanation.
Can I use a hash array to do what I wanted initially that is to say if I choose an author then I get his songs ?

For instance : Freda Payne -> first_song.mp3

                           -> second_song.mp3

The name of the author must be the value and not the key because we can't have two equal keys. Is that right?

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to