Thread File::Find und move (14 answers)
Opened by Gast at 2010-02-09 17:58

Gast Gast
 2010-02-09 17:58
#132446 #132446
Hallo!

Habe ich alles richtig gemacht?
Bringen die Zeilen
Code (perl): (dl )
1
2
return if /^\./;
return if -d;
etwas?
Sollte ich "move file, file" mit "or die $!" testen oder bringt das nichts?

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/env perl
use warnings;
use strict;
use File::Copy;
use File::Find;

my $dir = '/home/oo/bin';

find( \&wanted, $dir );

sub wanted {
    return if /^\./;
    return if -d;
    if ( -e and -f ) {
        my $file = $_;
        my $temp = 'temp_file';
        open my $out, '>', $temp or die $!;
        open my $in, '<', $file or die $!;
            while ( defined( my $row = <$in> ) ) {
                $row =~ s|^#!/usr/bin/perl|#!/usr/bin/env perl|;
                print $out $row;
            }
        close $in or die $!;
        close $out or die $!;
        move $temp, $file;
        chmod 0755, $file or die $!;
    }
}

View full thread File::Find und move