in reply to cd in perl not working?

It's been noted that "system" doesn't work the way you think it does; you're spawning a child shell, changing directory within that shell, then exiting it. Then, you spawn another shell and execute "tar" within it, and so on.

In general, you want to stick with Perl functions instead of shelling out (as Corion noted), but if you want to do all of the above, you might consider using a heredoc:

# NOTE: Those are backticks, not single quotes, around the delimiter print <<`ShellOut`; cd /path/to/dirs tar -czvf dir1.tgz dir1/ tar -czvf dir2.tgz dir2/ tar -czvf dir3.tgz dir3/ mv /path/to/dirs/dir1.tgz /backup/dir1.tgz mv /path/to/dirs/dir2.tgz /backup/dir2.tgz mv /path/to/dirs/dir3.tgz /backup/dir3.tgz ShellOut

This should do what you want.


--
"Language shapes the way we think, and determines what we can think about."
-- B. L. Whorf