Perl file and folder listing -Help


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Perl file and folder listing -Help
# 1  
Old 09-03-2009
Data Perl file and folder listing -Help

Hello,

I want to display all files and folders in a drive under windows. I tried two ways.
1-Way Here is the code snippet.
opendir DIR, "F:\"; # Searching under F drive
my @files = readdir(DIR); # Reading eveythg under F drive
closedir DIR; # closeing the directory handler
foreach my $file (@files) {
print "This is file $file \n" if (-f $file);
print "This is folder $file \n" if (-d $file);
}

Result :It is not listing anythg.I think it cant differentiate files and folders,It will work under UNIX not in WINDOWS .
2-Way Code snippet.
$value = "F:/*\.*"; # Searching under F drive
@files = <"$value">;
foreach my $file (@files) {
print "Here is the content of the drive $file ";
}

Result :Here nothg got displayed.
Please help..

Thanks in advance
Coolbhai
coolbhai
# 2  
Old 09-03-2009
Code:
opendir DIR, "F:/"; # Searching under F drive
my @files = readdir(DIR); # Reading eveythg under F drive
closedir DIR; # closeing the directory handler
foreach my $file (@files) {
print "This is file $file \n" if (-f "f:/$file");
print "This is folder $file \n" if (-d "f:/$file");
}

You can use forward slashes with Windows for file and folder access.
# 3  
Old 09-03-2009
Question

Thanks KevinADC,
Could you solve the second script issue..

$value = "F:/*\.*"; # Searching under F drive
@files = <"$value">; # but if I hardcord as @files = <F:/*.*>; it works well.
foreach my $file (@files) {
print "Here is the content of the drive $file ";
}

Result :Here nothg got displayed. I am running under WINDOWS operating System.

Please help..
coolbhai
# 4  
Old 09-03-2009
If you would run your perl scripts with warnings turned on as is always recommended you might have figured it out:

readline() on unopened filehandle at script line 3.

the construct <"$value"> which should really be <$value> is interpreted as a filehandle not a glob. It should be:

Code:
use warnings;
@files = <F:/*.*>; 
foreach my $file (@files) {
   print "Here is the content of the drive $file ";
}

If for some reason you must use a scalar in the glob you can do this:

Code:
use warnings;
$value = 'F:/*.*'; 
@files = <${value}>;
foreach my $file (@files) {
   print "Here is the content of the drive $file ";
}

But you should really be using the glob() function instead of the <> brackets:

Code:
use warnings;
$value = 'F:/*.*'; # Searching under F drive
@files = glob($value); # but if I hardcord as @files = <F:/*.*>; it works well.
foreach my $file (@files) {
   print "Here is the content of the drive $file ";
}

# 5  
Old 09-03-2009
Question

Thank you very much KevinADC,

All the issue got solved..

If possible can you tell me the difference between below two statements.

my $num =10;
my ${num} =10;

Thanks in advance
Coolbhai
coolbhai
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How can i sort this listing in PYTHON by folder creation?

Is there anything i can do about this code? I need to sort it by folder creation, the newest will be first ... thx :) for dirname in postme: dirname = os.path.abspath(dirname) if dirname: ... (2 Replies)
Discussion started by: ZerO13
2 Replies

2. Shell Programming and Scripting

[Perl] Module for recursive listing of remote Windows shares

Hi, I'm looking for a Perl module which can recursively list remote Windows shares from within a Linux machine. I've tried Filesys::SmbClient ans Filesys:SmbClientPars but they just list the current directory Thank You for your help (4 Replies)
Discussion started by: Fundix
4 Replies

3. Programming

Perl - Moving file based upon filesize in folder

Hi I'm trying to look through a series of directories in A folder, lets just call it A: for example: A/1 A/2 A/3 Etc and I wish to move the files in the folder if they are bigger than a certain size into a structure like below: A/TooBig/1 A/TooSmall/1 A/TooBig/2 A/TooSmall/2... (1 Reply)
Discussion started by: PerlNewbRP
1 Replies

4. Shell Programming and Scripting

Need help in finishing a bash script for listing subfolder by size in a large folder

Greetings everyone. I have seen that you do wonders here. I have a large folder on a Ubuntu linux. Organization main folder, inside 20 000 subfolders, and inside those subolders many other like 5-6 folders and files. I am interested to create an output to a txt file under the bash... (2 Replies)
Discussion started by: ultimo
2 Replies

5. UNIX for Dummies Questions & Answers

[Solved] How to remove listing of current user cmd from ps -ef listing?

Hi All, Could you please help to resolve my following issues: Problem Description: Suppose my user name is "MI90". i.e. $USER = MI90 when i run below command, i get all the processes running on the system containing name MQ. ps -ef | grep MQ But sometimes it lists... (8 Replies)
Discussion started by: KDMishra
8 Replies

6. Shell Programming and Scripting

want to move set of file from one folder to another folder

Hi all, let me explain my requirments i am having 5 folder with different name for eg) abc , cdf , efd, rtg, ead each 5 folders contain 15 files i want to move 10 files to some other folder, remain 5 files should be there in the same folder. give me some suggestion on this. (6 Replies)
Discussion started by: natraj005
6 Replies

7. Shell Programming and Scripting

File Management: How do I move all JPGS in a folder structure to a single folder?

This is the file structure: DESKTOP/Root of Photo Folders/Folder1qweqwasdfsd/*jpg DESKTOP/Root of Photo Folders/Folder2asdasdasd/*jpg DESKTOP/Root of Photo Folders/Folder3asdadfhgasdf/*jpg DESKTOP/Root of Photo Folders/Folder4qwetwdfsdfg/*jpg DESKTOP/Root of Photo... (4 Replies)
Discussion started by: guptaxpn
4 Replies

8. Shell Programming and Scripting

Move the file from one folder to another folder

Hi, I have a requirement to move a file from one folder(a) to another folder(b) only when folder (b) have a write permission. Folder permission is 755 If the permission is otherthan 755 we need to come out of the loop I will appreciate your help Thanks Soll (1 Reply)
Discussion started by: sollins
1 Replies

9. Shell Programming and Scripting

searching folder in perl

i will tell my problem with example: if i have a folder name called sree1.7.3 i know the starting name say sree and also path say /usr/lib. so i want the folder name. and how can i link this folder in makefile thank u sree (2 Replies)
Discussion started by: phani_sree
2 Replies

10. Shell Programming and Scripting

Parse the .txt file for folder name and FTP to the corrsponding folder.

Oracle procedure create files on UNIX folder on a regular basis. I need to FTP files onto windows server and place the files, based on their name, in the corresponding folders. File name is as follows: ccyymmddfoldernamefile.txt; Folder Name length could be of any size; however, the prefix and... (3 Replies)
Discussion started by: MeganP
3 Replies
Login or Register to Ask a Question

Featured Tech Videos