in reply to Re^3: How best test that a directory is a mount point of a mounted filesystem?
in thread How best test that a directory is a mount point of a mounted filesystem?

Sorry, I messed up with the file names. Obviously it needs to be the other way around ;)

if($^O eq 'linux') { $mtab = '/etc/mtab'; } else { $mtab = '/etc/mnttab'; }

You could (and probably should) specify solaris for the else-clause, but I'm not sure what $^O yields on Solaris.. Probably just 'solaris'.

Also don't forget to close the file after all that:

close $mounts;

Replies are listed 'Best First'.
Re^5: How best test that a directory is a mount point of a mounted filesystem?
by regexes (Hermit) on Jan 28, 2009 at 12:26 UTC
    you could (and probably should) specify solaris for the else-clause, but I'm not sure what $^O yields on Solaris.. Probably just 'solaris'.

    This is somewhat off topic... it all depends on what you are trying to do but note there is a difference in output between $^0, uname, and $Config{archname}. Below is some output from different OSes for comparison. The following code was used:
    #!/usr/bin/perl use strict; use Config; my $os_OS = $^O; my $config = $Config{'archname'}; my @uname = `uname -a`; chomp( my $os = shift @uname ); $os =~ s/^(\w+)\s.*/$1/; print "Uname -> $os\n"; print "\$^O -> $os_OS\n"; print "Config -> $config\n";
    Linux
    Uname -> Linux
    $^O -> linux
    Config -> x86_64-linux-gnu-thread-multi

    Solaris 5.9 and 5.10
    Uname -> SunOS
    $^O -> solaris
    Config -> sun4-solaris-64int

    AIX 6.1
    Uname -> AIX
    $^O -> aix
    Config -> aix-thread-multi

    Also be aware that $^O returns the architecture the perl binary was built on not the OS you are running on. That can be misleading, for example:

    OS400 PASE
    Uname -> OS400
    $^O -> aix
    Config -> aix

    See the discussion OS400 PASE - architecture? for details.

    regexes