Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

Re: Is it ever legitimate to override $^O ?

by davies (Prior)
on Aug 08, 2022 at 22:18 UTC ( #11146047=note: print w/replies, xml ) Need Help??

in reply to Is it ever legitimate to override $^O ?

If it's not legitimate, how should I have written the test & code below?

use strict; use warnings; use Test::More; use FindBin qw( $RealBin ); use lib $RealBin; use MyModule; if (connected()) { pass("\"connected\" works with defaults ($^O)"); } else { plan skip_all => 'Internet inaccessible'; } my $careto = $^O; if ($careto =~ /win/gmsi) { $^O = 'linux'; } else { $^O = 'win'; } ok !connected(), "\"connected\" fails with defaults overwritten ($^O)" or diag("\"connected\" returns true regardless (OS = $^O)"); $^O = $careto; done_testing;

SSCCE (I hope!) from the module:

Package MyModule; use strict; use warnings; sub connected { my $pingcmd = 'ping -c 1'; my $pingworks = ' 0% packet loss'; if ($^O =~ /win/gmsi) { $pingcmd =~ s/-c/\/n/; $pingworks = 'bytes=32'; } my $pingrtn = qx($pingcmd); return $pingrtn =~ /$pingworks/msi; } 1;

I accept this may be an ugly hack, but it tests what I want in a way that seems obvious to me. But I will gladly accept improvements, advice and explanations.


John Davies

Almost immediate update: deleted a couple of relic lines

Replies are listed 'Best First'.
Re^2: Is it ever legitimate to override $^O ?
by Anonymous Monk on Aug 09, 2022 at 10:19 UTC
    sub connected_win32 { ... } sub connected_linux { ... }
    Poking at global vars is no api

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11146047]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (4)
As of 2022-11-30 06:38 GMT
Find Nodes?
    Voting Booth?