in reply to Re^5: I need help with opening a directory and reading files in that directory.
in thread I need help with opening a directory and reading files in that directory.
Shadowsong," does the script live in the same directory as they do?"
No the .pl file is in the same folder as perlscripts2, but the .txt files are in a subfolder of the perlscripts2. Which would be /software/perl2/music/*. The .pl does not live in the same place as the .txt files I am trying to read.
Here is what I came up with to test the output....
#!/usr/bin/perl -l use strict; use warnings; use Data::Dumper; my ($id,%length); my $fh1 = "The Bouncing Souls-True Believers.txt"; opendir DH, "Y:/perlscripts2/software/perl2/music" or die $!; # open c +urrent directory while($_ = readdir(DH)){ # don't evaluate special dirs '.' & '..' next if $_ eq "." or $_ eq ".."; print "$_"; # print this file/directory's name } # as a by-product of readdir; use the file's stat info # to check whether this is indeed a regular file we can # open for reading/further processing if ($_ = $fh1) { open FH, "<$_" or die $!; print Dumper $_; print "output for file: $_\n"; while (my $line = <FH>) { chomp $line; print $line; if ($line=~ /\.txt/){ my ($artist, $song_title) = split '-', $line, 3; $length{$id}{artist} = $artist; $length{$id}{song_title} = $song_title; } elsif (my $row =~ /\:/){ chomp $row; my ($album, $minutes, $seconds, $genre) = split ':', $ +row, 4; $length{$id}{album} = $album; $length{$id}{minutes} = $minutes; $length{$id}{seconds} = $seconds; $length{$id}{genre} = $genre; } else{ print "Could not open file $_\n"; } }close FH; } foreach my $artist ( sort keys %length ) { print "$length{$id}{artist} is the name of the Artist\n"; print "$length{$id}{song_title} is the name of the song\n"; print "Album is $length{$id}{album} \n"; print "Album minutes is $length{$id}{minutes} \n"; print "Album seconds is $length{$id}{seconds} \n"; print "Album genre is $length{$id}{genre} \n"; }
The output is The Bouncing Souls-True Believers.txt, but it is not reading the file, chomping the lines, creating the hashes, and not getting the .txt files information that I need. I hope that I will figure this out soon. I'm literally beating my head against the my keyboard.
I'm going to be real honest. I'm starting to get confused because I have been trying to do different things and test them out. I have spent a lot of time trying to figure out how to get to the folder "music" and read the .txt files in the music folder, and then do something with them. You guys have provided some good information, but I still can't figure this out. I'm not giving up, but just need some more explanation on this.
P.S. Not looking for anyone to do the work for me. I just want to understand exactly what is going on.
Thanks, Brandon
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^7: I need help with opening a directory and reading files in that directory.
by shadowsong (Pilgrim) on Sep 09, 2015 at 22:51 UTC | |
by brawal128 (Novice) on Sep 10, 2015 at 21:20 UTC | |
by shadowsong (Pilgrim) on Sep 10, 2015 at 21:42 UTC |