is identical to C<$Config{'osname'}>. See also L<Config> and the
B<-V> command-line switch documented in L<perlrun>.
+In Windows platforms, $^O is not very helpful: since it is always
+C<MSWin32>, it doesn't tell the difference between 95/98/ME/NT/2000/XP/CE.
+Use Win32::GetOSVersion() (see L<perlport>) and other means (like for
+example the presence/absence of some files) to distinguish between
+the variants.
+
=item ${^OPEN}
An internal variable used by PerlIO. A string in two parts, separated
# Build up a set of file names (not command names).
use Config;
- use File::Spec;
- $this_perl = File::Spec->canonpath($^X);
- $this_perl .= $Config{_ext}
- unless $this_perl =~ m/$Config{_ext}([;\d]*)$/i;
+ $this_perl = $^X;
+ if ($^O ne 'VMS')
+ {$this_perl .= $Config{_exe}
+ unless $this_perl =~ m/$Config{_exe}$/i;}
Because many operating systems permit anyone with read access to
the Perl program file to make a copy of it, patch the copy, and
command or referenced as a file.
use Config;
- use File::Spec;
- $secure_perl_path = File::Spec->canonpath($Config{perlpath});
- $secure_perl_path .= $Config{_ext}
- unless $secure_perl_path =~ m/$Config{_ext}([;\d]*)$/i;
+ $secure_perl_path = $Config{perlpath};
+ if ($^O ne 'VMS')
+ {$secure_perl_path .= $Config{_exe}
+ unless $secure_perl_path =~ m/$Config{_exe}$/i;}
=item ARGV