[Madrid-pm] Selección de módulos dependiendo del S.O.
Alex Muntada
alexm en caliu.cat
Lun Nov 28 04:02:24 PST 2016
Joaquin Ferrero:
> IO::Async <https://metacpan.org/release/IO-Async> - Asynchronous
> event-driven programming
>
> if( eval { require "IO/Async/OS/$^O.pm" } ) {
> @ISA = "IO::Async::OS::$^O";
> }
Cuidado con usar $^O de esta manera porque no es una variable
read-only (se podría manipular para cargar otro módulo), e.g.
use v5.20;
package Trojan;
sub run { $^O = "../../../Trojan/trojan/$^O" }
package main;
say $^O;
Trojan->run();
say $^O;
Es preferible usar $Config{osname}, que sí es read-only.
Me pregunto hasta que punto esto sería una vulnerabilidad grave
de los módulos que usan $^O a saco y que tal vez habría que
informar de éllo. ¿Qué opináis?
Un saludo!
Alex
Más información sobre la lista de distribución Madrid-pm