A Dissabte 21 Octubre 2006 11:18, Xavier Noria va escriure: > On Oct 21, 2006, at 9:52 AM, xavier mas wrote: > > Dear all, > > Hi Xavier! > > > I'm trying to rename a bunch of files to the estination names > > included in a > > prepared files calling the system function "mv" inside a while loop > > (that > > reads the destination files one by one). > > > > But when doing this, I get an error saying a destiantion operand is > > missing in > > line calling the system. Doesn't matter if I use double (for Perl > > interpretaton) or single quotes (for system interpretation). > > > > If doing same thing on system bash line it works. What could be the > > reason for > > that behavior? I need, anyway through Perl programm due to the big > > ammount of > > files I have to rename. > > > > ... > > cont = 0; > > while (<FILE_IN>) { > > cont++ > > I bet the culprit are those barewords, write $cont instead. It is > good to enable strictness and warnings always, they catch lots of > potential bugs like that one. > > > $file_out = $_; > > $file_in = $cont; > > system "mv $file_in $file_out";} > > Shelling out has always its risks. Here we are assuming names do not > contain any space (which may be the case in your script). For the > same price you can robustely use the builtin rename or the move/mv > subroutines from the standard module File::Copy. > > -- fxn
Thanks Xavier, I'll try your suggestions. -- Xavier Mas -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>