A couple of comments:
- Your <TYPE>my $dir</TYPE> at the top doesn't change during the lifetime of the script-- and it would be confusing if it did! Personally, I'd
use constant DIR => '~/';
or some such.
- If you get an error in your system() calls, your error messages will be misleading. System() doesn't set $! on error. To get the return code on a system process that didn't return properly, use '$?'. I'd pull your system calls out into something like this:
sub run_system {
my (@params) = @_;
system(@params) == 0
or die "System command @{[join ' ', @params]} failed: returned
+ @{[ $? >> 8 ]}; stopped";
}
- You could replace the third function call with a call to open() (or open2()) to make it a bit more Perlish. It would require significantly more code, but would eliminate a temporary file.
But, these are merely suggestions. It looks like good Perl to me.
stephen