develooper Front page | perl.beginners | Postings from October 2009

Larry's filename fixer

Thread Next
From:
Felix Dorner
Date:
October 14, 2009 15:45
Subject:
Larry's filename fixer
Message ID:
4AD652E9.10801@web.de
Hi,

I did the best book purchase in years: The Perl Cookbook. They have an 
example that seems to come right from Larry Wall himself. And I don't 
get it. I can use it but I don't understand why it works with wildcards.

$op = shift or die "Usage: rename expr [files]\n";
chomp (@ARGV = <STDIN>) unless @ARGV;
for(@ARGV) {
    $was = $_;
    eval $op;
    die $@ if $@;
    rename ($was, $_) unless $was eq $_;
}


#rename.pl s/\.orig// httpd.conf.orig

will rename httpd.conf.orig to httpd.conf. But it also works with wildcards:

#rename.pl s/\.orig// *

will chop .orig from all files in the current directory.
So it assigns <STDIN> to @ARGV. But <STDIN> is just a * right? Does the 
shell expand this, or perl? Any comments/detailed explanations welcome.





Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About