- 论坛徽章:
- 7
|
本帖最后由 rubyish 于 2017-09-06 19:33 编辑
回复 21# sunzhiguolu
- my $t = 'x';
- my @A = ();
- my ($pos1) = grep { $t eq $A[$_][0] } 0 .. $#A;
- # 0 .. $#A EQ 0 .. -1 => SKIP
复制代码
- my @B = [];
- my ($pos2) = grep { $t eq $B[$_][0] } 0 .. $#B;
- # $B[0] => []
- # $B[0][0] => uninitialized value
复制代码
- my @B = ['x'];
- my ($pos2) = grep { $t eq $B[$_][0] } 0 .. $#B;
- # $B[0] => ['x']
- # $B[0][0] => 'x'
- say $pos2; # 0
- my @B = ['z'];
- my ($pos2) = grep { $t eq $B[$_][0] } 0 .. $#B;
- say $pos2; # Use of uninitialized value $pos2
复制代码
my @A = ();
EQ my @A;
say $#A; # -1, length == 0
my @B = [];
EQ my @B = ( [] ); # 1 elem, a empty arrayref
say $#B; # 0, length == 1
@B = ( () ); # empty
@B = ( ( () ) ); # empty
@B = ( ( ( ( ( () ) ) ) ) ); # empty
say( ( ( ( ( ( ( ("HELP!!") ) ) ) ) ) ) );
EQ say "HELP!!";
my @b = 1;
EQ my @b = (1);
my @a = 1, 2, 3;
EQ my @a = 1; # discard 2, 3
my $a = 1, 2, 3;
EQ my $a = 1; # discard 2, 3
my $a = ( 11, 22, 33 );
EQ my $a = 33; # last
my $C = ( print("A"), print("B"), 'C' );
leisi:
print('A'); # eval print('A'), discard return value
print('B');
my $C = 'C';
leisi:
my $C = do {
print 'A';
print 'B';
'C';
};
|
|