This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #113796] lib/File/stat.t failures when -l $^X
authorFather Chrysostomos <sprout@cpan.org>
Sun, 24 Jun 2012 07:10:55 +0000 (00:10 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Sun, 24 Jun 2012 07:11:42 +0000 (00:11 -0700)
commitc6cec3077440d7e149a8013d9939e2f5626ce21a
treee73ccea695e921fa3602a563e98ec0d5c94cae54
parent1adb05cd11a15cd5a64c8642648d985290404adc
[perl #113796] lib/File/stat.t failures when -l $^X

It seems that gcc produces this:

$ ./perl -Ilib -e 'warn $^X'
/Users/sprout/Perl/perl.git/perl at -e line 1.

while g++ produces this:

$ ./perl -Ilib -e 'warn $^X'
./perl at -e line 1.

(I may be misdiagnosing this, but I have two blead builds that give
different values for $^X.)

The script is using $^X for testing, which is why it could produce
different results.

In any case, this produces the same output for both compilers:

use File::stat;
my $stat = File::stat::stat('./perl');
warn eval '-l $stat';
warn eval '-l "./perl"';
__END__
Warning: something's wrong at - line 3.
1 at - line 4.

The test is wrong, as -l _ will fail after a stat.  You have to do
lstat for -l _ to work.  Similarly, -l $stat_obj should only return
true if the $stat_obj was returned by File::stat::lstat.

This commit adjusts the test accordingly.
lib/File/stat.t