On Wed, Sep 04, 2002 at 09:41:54PM +0200, Fabian Funk wrote:
> Hi, I'm pretty new to perl. I want to open a Directory with mp3 files an 
> other files. My Poblem is i need only the mp3 files. How can i get only 
> the mp3 files and not other files ?
> 
> I tried:
> 
> while (defined(my $file=readdir(DIR))) {

Here you assign to $file...

>       next if $file=~ /^\.\.?$/;

....and here you use it...

>       next unless /\.[mp3]$/i;

....but here you use $_ instead.
Besides that, you're matching all files *.m, *.p and *.3.  Match for
/\.mp3$/ instead.

>       push(@files,$file);     
> 
> But i get "Use of uninitialized value in pattern match (m//)
> What's wrong ???

That was the match on $_ which hadn't been set.

BTW:  perldoc -f readdir has a pretty good example for what you need to
do.

Try replacing your whole while construct with 

    my @files = grep { -f $_ && /\.mp3$/ } readdir DIR;

-- 
            Well, then let's give that Java-Wussie a beating... (me)

Michael Lamertz                        |     +49 2234 204947 / +49 171 6900 310
Sandstr. 122                           |                       [EMAIL PROTECTED]
50226 Frechen                          |                 http://www.lamertz.net
Germany                                |               http://www.perl-ronin.de 

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to