in reply to Re^2: 2 substitution problems
in thread Yet another substitution problem

Yup, good point. And the best way to fix it would be to "use Cwd", which makes all that code unnecessary anyway:
#!/usr/bin/perl use Cwd qw/abs_path/; print abs_path( $_ ) for ( @ARGV );
That prints an empty string (no error message) whenever any non-final path component is non-existent or unreadable (due to permissions).