Arrow = in Perl

1

Che cosa significa => in Perl?

my $CreateArray = [
objectClass => [ "top", "person", "organizationalPerson", "inetOrgPerson" ],
cn => "Jane User",
uid => "0000001",
sn => "User",
mail => "[email protected]"
];

produce

CreateArray:
0  'objectClass'
1  ARRAY(0x104ef40)
  0  'top'
  1  'person'
  2  'organizationalPerson'
  3  'inetOrgPerson'
2  'cn'
3  'Jane User'
4  'uid'
5  0000001
6  'sn'
7  'User'
8  'mail'
9  '[email protected]'

Sembra che anche i numeri siano chiavi e i numeri dispari siano valori. Perché non usano gli hash? Perché non sono ordinati? C'è un nome per questa strana struttura?

Grazie.

    
posta chris 12.08.2012 - 22:54
fonte

2 risposte

9

In generale, la "grande freccia" ( => ) in Perl è fondamentalmente una virgola, con una differenza: tutto a sinistra viene trattato come se fosse quotato. Quindi questo:

Foo => Bar

È lo stesso di:

'Foo', Bar

Per maggiori informazioni, vedi perlop .

    
risposta data 12.08.2012 - 23:05
fonte
0

D'accordo, vedi perlop (perldoc perlop) per i dettagli.

Per ulteriori discussioni, ecco una discussione decente. Non confondere la notazione key = > come significativa per un hash ...

Ad esempio:

# no =>
my %hash = (
  mykey, 'blah',
  yourkey, 'blah2',
  seehere, 'blah3',
  90, 'see further -- try putting a 0 in front of my key');

foreach my $key (sort keys %hash) {
  print qq#$key: $hash{$key}\n#;
}

exit(0);

Ma le frecce faranno altrettanto bene, senza virgolette, evitare gli ottali non quotati.

Riferimento: link

    
risposta data 23.01.2014 - 04:03
fonte

Leggi altre domande sui tag