in reply to Re^2: require different modules per OS?
in thread require different modules per OS?

I was wondering how eval EXPR compares. We have the following without eval EXPR:

BEGIN { if ($^O =~ /win32/) { require Win32::TieRegistry; import Win32::TieRegistry Delimiter=>"/", ArrayValues=>0; } }

The following would be the equivalent using eval EXPR and a minimal expression:

BEGIN { if ($^O =~ /win32/) { my @import = ( Delimiter=>"/", ArrayValues=>0 ); eval "use Win32::TieRegistry \@import; 1" or die $@; } }

Or if you extended the expression beyond the necessary:

BEGIN { if ($^O =~ /win32/) { eval 'use Win32::TieRegistry Delimiter=>"/", ArrayValues=>0; 1 +' or die $@; } }

So it looks like there's no gain from using eval EXPR.