in reply to automating linux commands in perl

hola.

i know why your script does not work.

it is not "system", not cp, not the other program that is used.
tho the advice pertaining to these is good, they are not the culprit. the culprit is readdir

here is why.

the first two 'files' returned by readdir are "." and "..". when you use readdir, you should probably do something like:
@fils = grep { -f $dirname . $_ } readdir DIR;
as it is, you start with .
you increment m after a failed cp:
you go on to the second file, .., and increment m again
and before you know it, your counter has reached the limit at which your do loop is broken out of.

if you use the construct above, all will be well.

best wishes,

...wufnik

-- in the world of the mules there are no rules --

Replies are listed 'Best First'.
Re: Re: automating linux commands in perl
by graff (Chancellor) on Sep 06, 2003 at 02:57 UTC
    I think what you meant to suggest was:
    @fils = grep { -f "$dirname/$_" } readdir DIR;
    (I suspect that the value of $dirname does not end in a slash, so just concatenating it with the file name would be wrong.)