查看迭代字典的一些代码,看起来代码依赖于按键值的升序访问,使用foreach.
MSDN文档声明" 为了枚举的目的,字典中的每个项目都被视为表示值及其键的KeyValuePair结构.返回项目的顺序是未定义的. "
然而,在执行期间,代码以"正确"的顺序访问每个KeyValuePair.
我已经更新了代码以明确地订购项目,但是如果有人解释为什么原始代码的行为与作者期望的一样,那么我感兴趣.
#if pl
my $hdr = '
Test script.
Once per session, run
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat"
or equivalent.
Run "perl FooInstallTest.cs".
';
use strict;
use Test::More tests => 2;
use sigtrap 'handler', \&cleanup, 'normal-signals';
my @reference = (qw(
));
sub main {
my $ret;
my $prog = "FooInstallTest.exe";
my $cmd =
"csc /debug " .
"/nologo " .
"/platform:x86 " .
"/out:FooInstallTest.exe " .
"/d:TRACE /d:DEBUG " .
"/define:FooInstallTest " .
"" …
Run Code Online (Sandbox Code Playgroud)