Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use strict;
- use warnings;
- #use Cwd qw(cwd);
- my $trass=0;
- my $dir;
- if($#ARGV == 0){
- if($ARGV[0] eq '?') {
- print "Recursive output\n";
- exit;
- }
- else { $dir = $ARGV[0]; }
- }
- else {
- $dir = $ARGV[0];
- $trass=1;
- }
- my @direct = ();
- my @files = ();
- my $tmp_dir=$dir;
- push(@direct, $tmp_dir);
- while(scalar @direct > 0) {
- $tmp_dir=shift @direct;
- if ($trass) {print "tmp_dir is: " . $tmp_dir . "\n";}
- if($tmp_dir ne " ") {
- #print "Zashlo" . "\n";
- opendir (DIR, $tmp_dir) or die $!;
- }
- while (my $file_name = readdir(DIR))
- {
- if ($trass) {print "$file_name\n";}
- if (-f $file_name) {
- if ($trass) {print "Ya tut" . "\n";}
- my ($ext) = $file_name =~ /(\.[^.]+)$/;
- my $foo = reverse($ext);
- chop($foo);
- $ext = reverse($foo);
- my $bool = 1;
- foreach my $el (@files) { $bool = 0 if ($el eq $ext); }
- if ($bool) { push(@files, $ext); }
- }
- if (-d $file_name) {
- if ($trass) {print "future tmp_dir is: " . $file_name . "\n";}
- my $bool=$file_name=~s/\./ /g;
- if( ($bool eq '') or ($bool =~ /^ *$/) or ($bool =~ /^\s*$/) ) {
- #print "file_name: " . $file_name . "\n";
- my $tmp_tmp_dir= $tmp_dir . '/' . $file_name;
- push(@direct, $tmp_tmp_dir);
- }
- else {
- #print "file_name: " . $file_name . "\n";
- my $tmp_tmp_dir= $tmp_dir . '/' . $file_name;
- #push(@direct, $tmp_tmp_dir);
- }
- }
- }
- closedir(DIR);
- }
- print "Length: " . (scalar @files) . "\n";
- foreach my $item (@files) {
- print $item . "\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement